3DCoat Core API
The 3DCoat API documentation.
|
operate over the Coat's ui More...
#include <CoreAPI.h>
Static Public Member Functions | |
static bool | cmd (const char *id, std::function< void()> process_in_modal_dialog=0) |
execute some action in UI as if you pressed on some control | |
static bool | cmd (const char *id, pybind11::object fn=pybind11::none()) |
execute some action in UI as if you pressed on some control | |
static bool | wait (const char *id, float max_seconds) |
wait till the element id will appear in the UI. The element will not be clicked. The max wait time is max_seconds. | |
static bool | presentInUI (const char *id) |
Check if the elemnt present in the UI. | |
static void | highlight (const char *id, float milliseconds) |
highlight the UI element for a while | |
static void | enablePenChannel (int i, bool enabled) |
enable or disable the pen channel | |
static bool | isEnabledPenChannel (int i) |
check if the pen channel is enabled | |
static bool | setSliderValue (const char *id, float value) |
Set the value for the the slider (if exists in UI) | |
static float | getSliderValue (const char *id) |
get the value of the slider | |
static bool | setEditBoxValue (const char *id, const char *value) |
set the edit box value | |
static bool | setEditBoxValue (const char *id, int value) |
set the edit box value | |
static bool | setEditBoxValue (const char *id, float value) |
set the edit box value | |
static bool | getEditBoxValue (const char *id, str &result) |
get the edit box value | |
static const char * | getEditBoxValue (const char *id) |
static void | apply () |
pess ENTER, acts as Apply usually | |
static void | setFileForFileDialog (const char *filename) |
Set the file for the next file dialog that will be triggered by user. If you will use coat::ui:cmd(...) to trigger some command that shows the file dialog this command allows to substitute the filename for that dialog instead of showing the dialog. This acts only for ONE next dialog. | |
static bool | getBoolField (const char *id) |
Get the bool field from the checkbox in UI. | |
static bool | setBoolValue (const char *id, bool value) |
Set the value for the checkbox in UI. | |
static const char * | currentRoom () |
get the current room name | |
static bool | isInRoom (const char *name) |
check if we are in the specified room | |
static void | toRoom (const char *name, bool Force=false) |
switch to the room | |
static int | roomsCount () |
returns the rooms count | |
static const char * | roomName (int index) |
get the room name by index | |
static const char * | roomID (int index) |
get the text identifier of the room | |
static void | toolParam (BaseClass *B) |
show the class B as the part of the tools params panel | |
static void | removeToolParam (BaseClass *B=nullptr) |
remove the class from the tools params | |
static const char * | getOption (const char *id) |
get the option from preferences | |
static bool | setOption (const char *id, const char *value) |
set the value to preferences | |
static bool | setOption (const char *id, bool value) |
static bool | setOption (const char *id, float value) |
static void | hideDontShowAgainMessage (const char *id) |
Hides the "Don't show again dialog" for the current session (not forever) | |
static void | showInfoMessage (const char *infoID, int milliseconds) |
Show the floating information message for the some time period. | |
static void | insertInMenu (const char *Menu, const char *ID_in_menu, const char *script_path) |
Insert the scripted command into the main menu. | |
static void | insertInToolset (const char *roomID, const char *section, const char *toolID, const char *script_path="") |
Insert the script-based tool into the toolset. | |
static void | removeCommandFromMenu (const char *ID_in_menu) |
remove the command from the menu | |
static bool | checkIfMenuItemInserted (const char *ID_in_menu) |
Check if the command inserted somewhere into the menu. | |
static void | addExtension (const char *roomID, const char *section, pybind11::object &obj) |
Add the extension (new tool) into the room. Look the GeneratorExample.py. | |
static bool | checkIfExtensionPresent (const char *extension_ID) |
Check if extension named as extension_ID is present in the 3DCoat. | |
static void | addTranslation (const char *id, const char *text) |
Add the translation for the text identifier. | |
static const std::string | getIdTranslation (const char *id) |
Get the translation for the text identifier. | |
static const std::string | getCurrentLanguage () |
Get the current language file name (without the XML extension) | |
static void | switchToLanguage (const char *language) |
Switch the layout to the language. | |
static float | scale () |
returns the scale in comparison to the smallest UI theme | |
static std::string | inputString (const char *text, int min_length=0) |
input text under the mouse position | |
static void | nomodalInput (str *text, std::function< void()> on_change=nullptr) |
static bool | nomodalInputActive () |
static int | inputInt (int initial_value) |
input the integer value under the mouse position | |
static float | inputFloat (float initial_value) |
inputh the float value under the mouse position | |
operate over the Coat's ui
|
static |
Add the extension (new tool) into the room. Look the GeneratorExample.py.
roomID | roomID the room identifier, same as folders names in Documents/3DCoat/UserPrefs/Rooms/CustomRooms/ |
section | section the section name. This string may be empty to add beyond sections (anyway, at the end) or in any existing section. To get section name, pres RMB+MMB over the section name in the toolset. You will get something like "*Adjust" in the clipboard. The "Adjust" in this case is the section name. |
obj | the object that contains the extension. Look the GeneratorExample.py |
|
static |
Add the translation for the text identifier.
id | the identifier |
text | the translation |
|
static |
Check if extension named as extension_ID is present in the 3DCoat.
extension_ID | the identifier of the extension |
|
static |
Check if the command inserted somewhere into the menu.
ID_in_menu | the ID of the command in the menu, look the list in C:/Users\andre\OneDrive\Documents\3DCoat/UserPrefs\Scripts\ExtraMenuItems\menu_sections.txt it is the english text or the identifier of the command |
|
static |
execute some action in UI as if you pressed on some control
The ID may be taken from the UI by clicking RMB+MMB, then the ID will appear in the clipboard (look Edit->Prferences->General->Script info type). If the element triggers modal dialog, the execution will be paused till the modal dialog will be closed, but the callback will be called each frame in modal dialog, so you will be able to control what happens in the modal dialog.
id | the identifier taken from the UI |
fn | the callback/lambda that will be called each frame till you are within the modal dialog. It looks like def _callback():
cmd("#id_to_press")
...code...
static bool cmd(const char *id, std::function< void()> process_in_modal_dialog=0) execute some action in UI as if you pressed on some control |
|
static |
execute some action in UI as if you pressed on some control
The ID may be taken from the UI by clicking RMB+MMB, then the ID will appear in the clipboard (look Edit->Prferences->General->Script info type). If the element triggers modal dialog, the execution will be paused till the modal dialog will be closed, but the callback will be called each frame in modal dialog, so you will be able to control what happens in the modal dialog.
id | the identifier taken from the UI. It looks like "$SOMETHING_THERE". If you will call the cmd with ID = "$[page_]SOMETHING_THERE" then only current page UI elements will be searched. Other-vice, the item will be searched globally among the all UI elements. |
process_in_modal_dialog | the callback/lambda that will be called each frame till you are within the modal dialog |
|
static |
get the current room name
|
static |
enable or disable the pen channel
i | the channel: 0 - depth, 1 - color, 3 - gloss, 2 - currently unused |
enabled | true to enable |
|
static |
Get the bool field from the checkbox in UI.
id | the element identifier |
|
static |
Get the current language file name (without the XML extension)
|
static |
get the edit box value
id | the ID of the element |
result | the string the will get the result |
|
static |
Get the translation for the text identifier.
id | the text identifier |
|
static |
get the option from preferences
id | the identifier of english text of the option |
|
static |
get the value of the slider
id | the ID of the element |
|
static |
Hides the "Don't show again dialog" for the current session (not forever)
id | the identifier, for example "AttachTextureHint", look the currently hidden list as files names in Docs/3DCoat/data/Temp/*.dontshow |
|
static |
highlight the UI element for a while
id | the ID of the element |
milliseconds | the time to highlight, milliseconds |
|
static |
inputh the float value under the mouse position
initial_value | the initial float value |
|
static |
input the integer value under the mouse position
initial_value | the initial integer value |
|
static |
input text under the mouse position
text | the initial text value |
min_length | the minimal width of the input field, if zero passed the width taken from the parent control (if exists) |
|
static |
Insert the scripted command into the main menu.
Menu | One of main menu items, look the list in Documents/3DCoat/UserPrefs/Scripts/ExtraMenuItems/menu_sections.txt |
ID_in_menu | the ID of the command in the menu, it is the english text or the identifier of the command |
script_path | the full or relative path to the script file, if relative, it is relative to the 3DCoat root folder If it comes without path, it is assumed to be in same folder as the script that calls this function. If this parameter is empty, this script will be called. |
|
static |
Insert the script-based tool into the toolset.
roomID | the room identifier, same as folders names in Documents/3DCoat/UserPrefs/Rooms/CustomRooms/ |
section | the section name. This string may be empty to add beyond sections (anyway, at the end) or in any existing section. To get section name, pres RMB+MMB over the section name in the toolset. You will get something like "*Adjust" in the clipboard. The "Adjust" in this case is the section name. |
toolID | the tool identifier, how it will appear in UI. You may provide the text for the identifier using the addTranslation(...) Also, if there is image in the data/Textures/icons64/ named as toolID.png, it will be used as the icon for the tool. |
script_path | the full or relative path to the script file, if relative, it is relative to the 3DCoat root folder If it comes without path, it is assumed to be in same folder as the script that calls this function. If this parameter is empty, this script will be called. |
|
static |
check if the pen channel is enabled
i | the cannel: 0 - depth, 1 - color, 3 - gloss, 2 - currently unused |
|
static |
check if we are in the specified room
name | the room name to check |
|
static |
Check if the elemnt present in the UI.
id | the identifier |
|
static |
remove the command from the menu
ID_in_menu | the ID of the command in the menu, it is the english text or the identifier of the command |
|
static |
remove the class from the tools params
B | the class pointer |
|
static |
get the text identifier of the room
index | the room index |
|
static |
get the room name by index
index | the room index |
|
static |
returns the rooms count
|
static |
returns the scale in comparison to the smallest UI theme
|
static |
Set the value for the checkbox in UI.
id | the element identifier |
value | the value to set |
|
static |
set the edit box value
id | the ID of the element |
value | the value to set |
|
static |
set the edit box value
id | the ID of the element |
value | the value to set |
|
static |
set the edit box value
id | the ID of the element |
value | the value to set |
|
static |
Set the file for the next file dialog that will be triggered by user. If you will use coat::ui:cmd(...) to trigger some command that shows the file dialog this command allows to substitute the filename for that dialog instead of showing the dialog. This acts only for ONE next dialog.
filename | the filename to substitute. |
|
static |
set the value to preferences
id | the value identifier or english text |
value |
|
static |
Set the value for the the slider (if exists in UI)
id | the ID of the element |
value | the value to set |
|
static |
Show the floating information message for the some time period.
infoID | the message or message identifier (from language files) |
milliseconds | how ling to display the message |
|
static |
Switch the layout to the language.
language | the language identifier, actually it is the file name (withot the XML extension) in the data/Languages/ folder |
|
static |
show the class B as the part of the tools params panel
B | the class pointer |
|
static |
switch to the room
name | the room name. Pay attention, you may pass the name or identifier, but name has bigger priory. |
Force | set true to switch even if we are in the tool that corresponds to the destination room |
|
static |
wait till the element id will appear in the UI. The element will not be clicked. The max wait time is max_seconds.
id | The ID we wait to appear |
max_seconds | the max wait time (seconds) |