diff --git a/doc/NimCocoa GUI Objects.md b/doc/NimCocoa GUI Objects.md new file mode 100644 index 0000000..933e6d2 --- /dev/null +++ b/doc/NimCocoa GUI Objects.md @@ -0,0 +1,308 @@ +# NimCocoa GUI Objects + +### newWindow + +##### proc newWindow*(title: cstring, width, height: int, style: int): ID + +```nim +var mainWin = newWindow("GUI", 800, 600, NSWindowStyleMaskTitled or NSWindowStyleMaskClosable) +``` + +| Parameter Name | Parameter Type | Comments | +| --------------- | -------------- | ------------------------ | +| title | cstring | window title | +| width | int | width of window | +| height | int | height of window | +| style | int | Type and style of window | +| **RETURN TYPE** | ID | handle new NSWindow | + +##### + +### **newLabel** + +##### proc newLabel*(parent: ID; txt: cstring, left, top, width, height: int): ID + +```nim +var myLabel = newLabel(mainWin,"This is a label", 20,20,120,24) +``` + +| Parameter Name | Parameter Type | Comments | +| --------------- | -------------- | --------------------- | +| parent | `ID` | parent object | +| txt | cstring | label text | +| left | cint | x position on parent | +| top | cint | y position on parent | +| width | cint | width of label | +| height | cint | height of lable | +| **RETURN TYPE** | ID | handle to new NSLabel | + +### + +### newButton + +##### proc newButton*(parent: ID; caption: cstring; left: cint; top: cint; width: cint; height: cint; callback: ACTION): ID + +```nim +var btn = newButton(win, "OK", 385, 17, 81, 24, nil) +``` + +| Parameter Name | Parameter Type | Comments | +| --------------- | -------------- | --------------------------------------- | +| parent | ID | parent object | +| caption | cstring | button text | +| left | cint | x position on parent | +| top | cint | y position on parent | +| width | cint | width of button | +| height | cint | height of button | +| callback | ACTION | function to execute when clicked or nil | +| **RETURN TYPE** | ID | handle to new NSButton | + +### + +### **newTextField** + +##### proc newTextField*(parent: ID; txt: cstring; left: cint; top: cint; width: cint; height: cint): ID + +```nim +var myTextEntry = newTextField(mainWin,"", 20,20,320,24) +``` + +| Parameter Name | Parameter Type | Comments | +| --------------- | -------------- | ------------------------------- | +| parent | ID | parent object | +| caption | cstring | text to display or blank string | +| left | cint | x position on parent | +| top | cint | y position on parent | +| width | cint | width of textfield | +| height | cint | height of textfield | +| **RETURN TYPE** | ID | handle to new NSTextField | + +##### + +### newTextEdit + +##### proc newTextEdit*(parent: ID; txt: cstring, left, top, width, height: int): ID + +```nim +var editor = newTextEdit(mainWin,"", 20, 40, 500, 500) +``` + +| Parameter Name | Parameter Type | Comments | +| --------------- | -------------- | ------------------------------- | +| parent | ID | parent object | +| caption | cstring | text to display or blank string | +| left | cint | x position on parent | +| top | cint | y position on parent | +| width | cint | width of textedit | +| height | cint | height of textedit | +| **RETURN TYPE** | ID | handle to new NSTextEdit | + +##### + +## newListbox + +##### proc newListBox*(parent: ID, left, top, width, height: cint): ID + +```nim +var +``` + +| Parameter Name | Parameter Type | Comments | +| --------------- | -------------- | ----------------------- | +| parent | ID | parent object | +| left | cint | x position on parent | +| top | cint | y position on parent | +| width | cint | width of listbox | +| height | cint | height of listbox | +| **RETURN TYPE** | ID | handle to new NSListBox | + +##### + +### newLine + +##### proc newLine*(parent: ID, left, top, width: cint): ID + +```nim +var line = newLine(mainWin, 20, 100, 500) +``` + +| Parameter Name | Parameter Type | Comments | +| --------------- | -------------- | -------------------- | +| parent | ID | parent object | +| left | cint | x position on parent | +| top | cint | y position on parent | +| width | cint | width of line | +| **RETURN TYPE** | ID | handle to new NSLine | + +##### + +### newComboBox + +##### proc newComboBox*(parent: ID; left: cint; top: cint; width: cint; height: cint; `callback`: ACTION): ID + +```nim +var combo = newComboBox(mainWin, 16,54,210,26, comboCallback) +``` + +| Parameter Name | Parameter Type | Comments | +| --------------- | -------------- | ----------------------------------------------------- | +| parent | ID | parent object | +| left | cint | x position on parent | +| top | cint | y position on parent | +| width | cint | width of combobox | +| height | cint | height of combobox | +| callback | ACTION | function to execute when selected item changes or nil | +| **RETURN TYPE** | ID | handle to new NSComboBox | + +##### + +### newCheckBox + +##### proc newCheckBox*(parent: ID, caption: cstring, left, top, width, height:int): ID + +```nim +var chkbox = newCheckBox(mainWin,"Check Box 1", 240, 54, 100, 24) +``` + +| Parameter Name | Parameter Type | Comments | +| --------------- | -------------- | ------------------------ | +| parent | ID | parent object | +| caption | cstring | text to display | +| left | cint | x position on parent | +| top | cint | y position on parent | +| width | cint | width of checkbox | +| height | cint | height of checkbox | +| **RETURN TYPE** | ID | handle to new NSCheckBox | + +##### + +### newSlider + +##### proc newSlider*(parent: ID; left, top, width, height: int, callback: ACTION): ID + +```nim +var slide = newSlider(mainWin, 20, 20, 300, 24, [callback_proc or nil]) +``` + +| Parameter Name | Parameter Type | Comments | +| --------------- | -------------- | --------------------------------------- | +| parent | `ID` | parent object | +| left | cint | x position on parent | +| top | cint | y position on parent | +| width | cint | width of slider | +| height | cint | height of slider | +| callback | ACTION | function to call when slider is updated | +| **RETURN TYPE** | ID | handle to new NSSlider | + +### + +### newOpenDialog + +##### proc newOpenDialog*(parent: ID, types: cstring): cstring + +```nim +var filename = newOpenDialog(mainWin, "nim:c:m") +``` + +| Parameter Name | Parameter Type | Comments | +| --------------- | -------------- | ---------------------------------------------- | +| parent | ID | parent window objcet | +| types | cstring | filetype suffixes, separated by ':' (colon) | +| **RETURN TYPE** | cstring | full path to file or empty string if cancelled | + +##### + +### newSaveDialog + +##### proc newSaveDialog*(parent: ID, types: cstring): cstring + +```nim +var filename = newSaveDialog(mainWin, "nim:c:m") +``` + +| Parameter Name | Parameter Type | Comments | +| --------------- | -------------- | ---------------------------------------------- | +| parent | ID | parent window object | +| types | cstring | filetype suffixes, separated by ':' (colon) | +| **RETURN TYPE** | cstring | full path to file or empty string if cancelled | + +### + +### newDialog + +##### proc newDialog*(title, message: cstring, height: cint): cint + +```nim +var retVal = newDialog("Hello", "Greetings from somewhere", 50) +``` + +| Parameter Name | Parameter Type | Comments | +| --------------- | -------------- | ------------------------------------- | +| parent | ID | parent window object | +| message | cstring | text to display | +| height | cint | height of dialog | +| **RETURN TYPE** | cint | value of selected button [OK, Cancel] | + +##### + +### newMessageBox + +##### proc newMessageBox*(title, message: cstring, height: cint): cint + +```nim +var retVal = newMessageBo("Info", "Today is Monday", 100) +``` + +| Parameter Name | Parameter Type | Comments | +| --------------- | -------------- | ------------------------------- | +| parent | ID | parent window object | +| title | cstring | title displayed for messagebox | +| message | cstring | message displayed in messagebox | +| height | cint | height of messagebox | +| **RETURN TYPE** | cint | value of selected button | + +##### + +### newMenu + +##### proc newMenu*(title: cstring): ID + +```nim +var fileMenu = newMenu(mainWin,"File") +``` + +| Parameter Name | Parameter Type | Comments | +| --------------- | -------------- | --------------------------- | +| parent | ID | parent window object | +| title | cstring | name shown in GUI main menu | +| **RETURN TYPE** | ID | handle to new NSMenu | + +##### + +### newMenuItem + +##### proc newMenuItem*(parent: ID, caption, key: cstring, `callback`:ACTION) + +```nim + +``` + +| Parameter Name | Parameter Type | Comments | +| -------------- | -------------- | -------------------------------- | +| parent | ID | parent MENU object | +| caption | cstring | name shown under parent menu | +| callback | ACTION | function to execute when clicked | + +##### + +### newMenuSeparator + +##### proc newMenuSeparator*(parent: ID) + +```nim + +``` + +| Parameter Name | Parameter Type | Comments | +| -------------- | -------------- | ------------------ | +| parent | ID | parent MENU object |