]> uap-core.de Git - note.git/commitdiff
update toolkit main
authorOlaf Wintermann <olaf.wintermann@gmail.com>
Sat, 11 Apr 2026 14:30:41 +0000 (16:30 +0200)
committerOlaf Wintermann <olaf.wintermann@gmail.com>
Sat, 11 Apr 2026 14:30:41 +0000 (16:30 +0200)
ui/cocoa/text.m
ui/cocoa/widget.h
ui/cocoa/window.m

index d359d4433d9ae529db5ccbfb2d2583dbfd29cca0..b01a07bc0e3daab5c1226d1a2e4ca3fc6746cb40 100644 (file)
@@ -258,3 +258,51 @@ void ui_textfield_set(UiString *s, const char *value) {
     NSTextField *textfield = (__bridge NSTextField*)s->obj;
     textfield.stringValue = [[NSString alloc] initWithUTF8String:value];
 }
+
+/* -------------------------- public Textfield functions -------------------------- */
+
+void ui_textfield_focus(UIWIDGET textfield) {
+    NSTextField *tf = (__bridge NSTextField*)textfield;
+    [tf.window makeFirstResponder:tf];
+    [tf selectText:nil];
+}
+
+void ui_textfield_focus_without_selecting(UIWIDGET textfield) {
+    NSTextField *tf = (__bridge NSTextField*)textfield;
+    [tf.window makeFirstResponder:tf];
+}
+
+void ui_textfield_set_selection(UIWIDGET textfield, int begin, int end) {
+    NSTextField *tf = (__bridge NSTextField*)textfield;
+    [tf.window makeFirstResponder:tf];
+    NSTextView *fieldEditor = (NSTextView *)[tf.window fieldEditor:YES forObject:tf];
+    [fieldEditor setSelectedRange:NSMakeRange(begin, end-begin)];
+}
+
+void ui_textfield_select_all(UIWIDGET textfield) {
+    NSTextField *tf = (__bridge NSTextField*)textfield;
+    [tf selectText:nil];
+}
+
+void ui_textfield_set_editable(UIWIDGET textfield, UiBool editable) {
+    NSTextField *tf = (__bridge NSTextField*)textfield;
+    tf.editable = editable;
+}
+
+UiBool ui_textfield_is_editable(UIWIDGET textfield) {
+    NSTextField *tf = (__bridge NSTextField*)textfield;
+    return tf.isEditable;
+}
+
+void ui_textfield_set_position(UIWIDGET textfield, int pos) {
+    NSTextField *tf = (__bridge NSTextField*)textfield;
+    NSTextView *editor = (NSTextView *)[tf currentEditor];
+    [editor setSelectedRange:NSMakeRange(pos, 0)];
+}
+
+int ui_textfield_get_position(UIWIDGET textfield) {
+    NSTextField *tf = (__bridge NSTextField*)textfield;
+    NSTextView *editor = (NSTextView *)[tf currentEditor];
+    NSRange selectedRange = [editor selectedRange];
+    return (int)selectedRange.location;
+}
index 772bf88d718e4fe68cc0dfade47684ee1f870de2..5857c86b6242ae4ebe869f92bfe59d829d1339da 100644 (file)
@@ -27,5 +27,5 @@
  */
 
 #import "toolkit.h"
-#import "Container.h"
+#import "container.h"
 #import "../ui/widget.h"
index a3fe0890fe9da612168fd43a8a844b32855aff7f..7d89edd198c70cd5af06b744f007c8bc7eb81bef 100644 (file)
@@ -96,6 +96,35 @@ void ui_window_default_size(int width, int height) {
     window_default_height = height;
 }
 
+/* ------------------------------- SplitView Window-------------------------------- */
+
+void ui_splitview_window_set_pos(UiObject *obj, int pos) {
+    MainWindow *window = (__bridge MainWindow*)obj->wobj;
+    int divider = window.sidebar != nil ? 1 : 0;
+    [window.splitview setPosition:pos ofDividerAtIndex:divider];
+}
+
+int ui_splitview_window_get_pos(UiObject *obj) {
+    MainWindow *window = (__bridge MainWindow*)obj->wobj;
+    int divider = window.sidebar != nil ? 1 : 0;
+    return window.splitview.subviews[divider].frame.size.width;
+}
+
+void ui_splitview_window_set_default_pos(int pos) {
+    splitview_window_default_pos = pos;
+}
+
+void ui_splitview_window_use_property(UiBool enable) {
+    splitview_window_use_prop = enable;
+}
+
+void ui_splitview_window_set_visible(UiObject *obj, int pane, UiBool visible) {
+    MainWindow *window = (__bridge MainWindow*)obj->wobj;
+    if(pane >= 0 && pane < 2) {
+        window.splitview.subviews[pane].hidden = visible;
+    }
+}
+
 /* --------------------------------- File Dialogs --------------------------------- */
 
 void ui_openfiledialog(UiObject *obj, unsigned int mode, ui_callback file_selected_callback, void *cbdata) {