3DCoat Python API
The 3DCoat Python API documentation.
Loading...
Searching...
No Matches
Public Member Functions | List of all members
coat.ui Class Reference

Public Member Functions

bool cmd (id=str, fn=Any)
 perform some command in UI.
 
bool wait (id=str, max_seconds=float)
 wait till the element id will appear in the UI.
 
bool setSliderValue (id=str, value=float)
 Set the value for the the slider (if exists in UI)
 
float getSliderValue (id=str)
 get the value of the slider
 
bool setEditBoxValue (id=str, value=str)
 set the edit box value
 
bool setEditBoxValue (id=str, value=int)
 set the edit box value
 
bool setEditBoxValue (id=str, value=float)
 set the edit box value
 
bool getEditBoxValue (id=str, result=Any)
 get the edit box value
 
str getEditBoxValue (id=str)
 get the edit box value
 
 apply ()
 pess ENTER, acts as Apply usually
 
 setFileForFileDialog (filename=str)
 Set the file for the next file dialog that will be triggered by user.
 
bool getBoolField (id=str)
 Get the bool field from the checkbox in UI.
 
bool setBoolValue (id=str, value=bool)
 Set the value for the checkbox in UI.
 
str currentRoom ()
 get the current room name
 
bool isInRoom (name=str)
 check if we are in the specified room
 
 toRoom (name=str)
 switch to the room
 
int roomsCount ()
 returns the rooms count
 
str roomName (index=int)
 get the room name by index
 
str roomID (index=int)
 get the text identifier of the room
 
 toolParam (B=Any)
 show the class B as the part of the tools params panel
 
 removeToolParam (B=Any)
 remove the class from the tools params
 
str getOption (id=str)
 get the option from preferences
 
bool setOption (id=str, value=str)
 set the value to preferences
 
bool setOption (id=str, value=bool)
 set the value to preferences
 
bool setOption (id=str, value=float)
 set the value to preferences
 
 hideDontShowAgainMessage (id=str)
 Hides the "Don't show again dialog" for the current session (not forever)
 
 showInfoMessage (infoID=str, milliseconds=int)
 Show the floating information message for the some time period.
 
 insertInMenu (Menu=str, ID_in_menu=str, script_path=str)
 Insert the scripted command into the main menu.
 
 insertInToolset (roomID=str, section=str, toolID=str, script_path=str)
 Insert the script-based tool into the toolset.
 
 removeCommandFromMenu (ID_in_menu=str)
 remove the command from the menu
 
bool checkIfMenuItemInserted (ID_in_menu=str)
 Check if the command inserted somewhere into the menu.
 
 addExtension (roomID=str, section=str, obj=Any)
 Add the extension (new tool) into the room.
 
bool checkIfExtensionPresent (extension_ID=str)
 Check if extension named as extension_ID is present in the 3DCoat.
 
 addTranslation (id=str, text=str)
 Add the translation for the text identifier.
 
str getIdTranslation (id=str)
 Get the translation for the text identifier.
 
str getCurrentLanguage ()
 Get the current language file name (without the XML extension)
 
 switchToLanguage (language=str)
 Switch the layout to the language.
 
float scale ()
 returns the scale in comparison to the smallest UI theme
 
str inputString (text=str, min_length=int)
 input text under the mouse position
 
int inputInt (initial_value=int)
 input the integer value under the mouse position
 
float inputFloat (initial_value=float)
 inputh the float value under the mouse position
 

Member Function Documentation

◆ addExtension()

coat.ui.addExtension (   roomID = str,
  section = str,
  obj = Any 
)

Add the extension (new tool) into the room.

Look the GeneratorExample.py

Parameters
roomIDroomID the room identifier, same as folders names in Documents/3DCoat/UserPrefs/Rooms/CustomRooms/
sectionsection 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.
objthe object that contains the extension. Look the GeneratorExample.py

◆ addTranslation()

coat.ui.addTranslation (   id = str,
  text = str 
)

Add the translation for the text identifier.

Parameters
idthe identifier
textthe translation

◆ apply()

coat.ui.apply ( )

pess ENTER, acts as Apply usually

◆ checkIfExtensionPresent()

bool coat.ui.checkIfExtensionPresent (   extension_ID = str)

Check if extension named as extension_ID is present in the 3DCoat.

Parameters
extension_IDthe identifier of the extension
Returns
True if the extension installed

◆ checkIfMenuItemInserted()

bool coat.ui.checkIfMenuItemInserted (   ID_in_menu = str)

Check if the command inserted somewhere into the menu.

Parameters
ID_in_menuthe 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
Returns
true if the command is inserted

◆ cmd()

bool coat.ui.cmd (   id = str,
  fn = Any 
)

perform some command in UI.

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.

Parameters
idthe identifier taken from the UI
fnthe 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...
Returns
True if the element found and the operation executed

◆ currentRoom()

str coat.ui.currentRoom ( )

get the current room name

Returns
the name

◆ getBoolField()

bool coat.ui.getBoolField (   id = str)

Get the bool field from the checkbox in UI.

Parameters
idthe element identifier
Returns
the checkbox value

◆ getCurrentLanguage()

str coat.ui.getCurrentLanguage ( )

Get the current language file name (without the XML extension)

Returns
the language file name (without the XML extension)

◆ getEditBoxValue() [1/2]

str coat.ui.getEditBoxValue (   id = str)

get the edit box value

Parameters
idthe ID of the element
resultthe string the will get the result
Returns
true if the element exists

◆ getEditBoxValue() [2/2]

bool coat.ui.getEditBoxValue (   id = str,
  result = Any 
)

get the edit box value

Parameters
idthe ID of the element
resultthe string the will get the result
Returns
true if the element exists

◆ getIdTranslation()

str coat.ui.getIdTranslation (   id = str)

Get the translation for the text identifier.

Parameters
idthe text identifier
Returns
the translation or the id

◆ getOption()

str coat.ui.getOption (   id = str)

get the option from preferences

Parameters
idthe identifier of english text of the option
Returns
the value as string

◆ getSliderValue()

float coat.ui.getSliderValue (   id = str)

get the value of the slider

Parameters
idthe ID of the element
Returns
the value

◆ hideDontShowAgainMessage()

coat.ui.hideDontShowAgainMessage (   id = str)

Hides the "Don't show again dialog" for the current session (not forever)

Parameters
idthe identifier, for example "AttachTextureHint", look the currently hidden list as files names in Docs/3DCoat/data/Temp/ #.dontshow

◆ inputFloat()

float coat.ui.inputFloat (   initial_value = float)

inputh the float value under the mouse position

Parameters
initial_valuethe initial float value
Returns
the changed value (if the user pressed OK) or the initial value other vice.

◆ inputInt()

int coat.ui.inputInt (   initial_value = int)

input the integer value under the mouse position

Parameters
initial_valuethe initial integer value
Returns
the changed value (if the user pressed OK) or the initial value other vice.

◆ inputString()

str coat.ui.inputString (   text = str,
  min_length = int 
)

input text under the mouse position

Parameters
textthe initial text value
min_lengththe minimal width of the input field, if zero passed the width taken from the parent control (if exists)
Returns
the changed text (if the user pressed OK) or the initial text other vice.

◆ insertInMenu()

coat.ui.insertInMenu (   Menu = str,
  ID_in_menu = str,
  script_path = str 
)

Insert the scripted command into the main menu.

Parameters
MenuOne of main menu items, look the list in Documents/3DCoat/UserPrefs/Scripts/ExtraMenuItems/menu_sections.txt
ID_in_menuthe ID of the command in the menu, it is the english text or the identifier of the command
script_paththe 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.

◆ insertInToolset()

coat.ui.insertInToolset (   roomID = str,
  section = str,
  toolID = str,
  script_path = str 
)

Insert the script-based tool into the toolset.

Parameters
roomIDthe room identifier, same as folders names in Documents/3DCoat/UserPrefs/Rooms/CustomRooms/
sectionthe 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.
toolIDthe 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_paththe 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.

◆ isInRoom()

bool coat.ui.isInRoom (   name = str)

check if we are in the specified room

Parameters
namethe room name to check
Returns
true if we are in that room

◆ removeCommandFromMenu()

coat.ui.removeCommandFromMenu (   ID_in_menu = str)

remove the command from the menu

Parameters
ID_in_menuthe ID of the command in the menu, it is the english text or the identifier of the command

◆ removeToolParam()

coat.ui.removeToolParam (   B = Any)

remove the class from the tools params

Parameters
Bthe class pointer

◆ roomID()

str coat.ui.roomID (   index = int)

get the text identifier of the room

Parameters
indexthe room index
Returns
"" if index outside the range or the room identifier if the index is valid

◆ roomName()

str coat.ui.roomName (   index = int)

get the room name by index

Parameters
indexthe room index
Returns
"" if index outside the range or the room name if the index is valid

◆ roomsCount()

int coat.ui.roomsCount ( )

returns the rooms count

Returns
the number

◆ scale()

float coat.ui.scale ( )

returns the scale in comparison to the smallest UI theme

Returns
the scale factor > 1

◆ setBoolValue()

bool coat.ui.setBoolValue (   id = str,
  value = bool 
)

Set the value for the checkbox in UI.

Parameters
idthe element identifier
valuethe value to set
Returns
true if successful and the element exists

◆ setEditBoxValue() [1/3]

bool coat.ui.setEditBoxValue (   id = str,
  value = float 
)

set the edit box value

Parameters
idthe ID of the element
valuethe value to set
Returns
true if the element exists

◆ setEditBoxValue() [2/3]

bool coat.ui.setEditBoxValue (   id = str,
  value = int 
)

set the edit box value

Parameters
idthe ID of the element
valuethe value to set
Returns
true if the element exists

◆ setEditBoxValue() [3/3]

bool coat.ui.setEditBoxValue (   id = str,
  value = str 
)

set the edit box value

Parameters
idthe ID of the element
valuethe value to set
Returns
true if the element exists

◆ setFileForFileDialog()

coat.ui.setFileForFileDialog (   filename = str)

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.

Parameters
filenamethe filename to substitute.

◆ setOption() [1/3]

bool coat.ui.setOption (   id = str,
  value = bool 
)

set the value to preferences

Parameters
idthe value identifier or english text
value
Returns

◆ setOption() [2/3]

bool coat.ui.setOption (   id = str,
  value = float 
)

set the value to preferences

Parameters
idthe value identifier or english text
value
Returns

◆ setOption() [3/3]

bool coat.ui.setOption (   id = str,
  value = str 
)

set the value to preferences

Parameters
idthe value identifier or english text
value
Returns

◆ setSliderValue()

bool coat.ui.setSliderValue (   id = str,
  value = float 
)

Set the value for the the slider (if exists in UI)

Parameters
idthe ID of the element
valuethe value to set
Returns
true if successful

◆ showInfoMessage()

coat.ui.showInfoMessage (   infoID = str,
  milliseconds = int 
)

Show the floating information message for the some time period.

Parameters
infoIDthe message or message identifier (from language files)
millisecondshow ling to display the message

◆ switchToLanguage()

coat.ui.switchToLanguage (   language = str)

Switch the layout to the language.

Parameters
languagethe language identifier, actually it is the file name (withot the XML extension) in the data/Languages/ folder

◆ toolParam()

coat.ui.toolParam (   B = Any)

show the class B as the part of the tools params panel

Parameters
Bthe class pointer

◆ toRoom()

coat.ui.toRoom (   name = str)

switch to the room

Parameters
namethe room name. Pay attention, you may pass the name or identifier, but name has bigger priory.

◆ wait()

bool coat.ui.wait (   id = str,
  max_seconds = float 
)

wait till the element id will appear in the UI.

The element will not be clicked. The max wait time is max_seconds.

Parameters
idThe ID we wait to appear
max_secondsthe max wait time (seconds)
Returns
true if the element appeared

The documentation for this class was generated from the following file: