diff options
| author | trustable-code <krauter.simon@arcor.de> | 2020-02-16 01:38:34 +0100 |
|---|---|---|
| committer | trustable-code <krauter.simon@arcor.de> | 2020-02-16 01:38:34 +0100 |
| commit | ec650392735515f663d079f40ce07cb036d3f97d (patch) | |
| tree | 50d4fcdab76be9ab7411771db3ce5fe9cdb1c4d3 /src/nigui/private | |
| parent | 1cd4b28eb9f81114099acf2179cf134143fa3c7e (diff) | |
| download | NiGui-ec650392735515f663d079f40ce07cb036d3f97d.tar.gz NiGui-ec650392735515f663d079f40ce07cb036d3f97d.zip | |
Re-implement label using custom drawing
Replaces the native label implementations.
Supporting different x and y text alignment.
Fixes #90
Diffstat (limited to 'src/nigui/private')
| -rwxr-xr-x | src/nigui/private/gtk3/gtk3.nim | 6 | ||||
| -rwxr-xr-x | src/nigui/private/gtk3/platform_impl.nim | 13 | ||||
| -rwxr-xr-x | src/nigui/private/windows/platform_impl.nim | 6 | ||||
| -rwxr-xr-x | src/nigui/private/windows/windows.nim | 2 |
4 files changed, 6 insertions, 21 deletions
diff --git a/src/nigui/private/gtk3/gtk3.nim b/src/nigui/private/gtk3/gtk3.nim index 82b555a..67a0e23 100755 --- a/src/nigui/private/gtk3/gtk3.nim +++ b/src/nigui/private/gtk3/gtk3.nim @@ -331,12 +331,12 @@ proc gtk_button_box_set_layout*(widget: pointer, layout_style: cint) {.importc, # proc gtk_message_dialog_new*(parent: pointer, flags: GtkDialogFlags, `type`: GtkMessageType, buttons: GtkButtonsType, message_format: cstring): pointer {.importc, libgtk3.} proc gtk_label_new*(str: cstring): pointer {.importc, libgtk3.} -proc gtk_label_set_text*(label: pointer, str: cstring) {.importc, libgtk3.} +# proc gtk_label_set_text*(label: pointer, str: cstring) {.importc, libgtk3.} # proc gtk_label_get_text*(label: pointer): cstring {.importc, libgtk3.} proc gtk_label_set_ellipsize*(label: pointer, mode: cint) {.importc, libgtk3.} # proc gtk_label_set_justify*(label: pointer, jtype: cint) {.importc, libgtk3.} -proc gtk_label_set_xalign*(label: pointer, xalign: cfloat) {.importc, libgtk3.} -proc gtk_label_set_yalign*(label: pointer, yalign: cfloat) {.importc, libgtk3.} +# proc gtk_label_set_xalign*(label: pointer, xalign: cfloat) {.importc, libgtk3.} +# proc gtk_label_set_yalign*(label: pointer, yalign: cfloat) {.importc, libgtk3.} proc gtk_progress_bar_new*(): pointer {.importc, libgtk3.} proc gtk_progress_bar_set_fraction*(pbar: pointer, fraction: cdouble) {.importc, libgtk3.} diff --git a/src/nigui/private/gtk3/platform_impl.nim b/src/nigui/private/gtk3/platform_impl.nim index f98564d..7ecaf5f 100755 --- a/src/nigui/private/gtk3/platform_impl.nim +++ b/src/nigui/private/gtk3/platform_impl.nim @@ -1356,19 +1356,8 @@ method pAddButtonPressEvent(checkbox: NativeCheckbox) = discard # don't override # ---------------------------------------------------------------------------------------- proc init(label: NativeLabel) = - label.fHandle = gtk_label_new("") - gtk_label_set_xalign(label.fHandle, 0) - gtk_label_set_yalign(label.fHandle, 0.5) - gtk_label_set_ellipsize(label.fHandle, PANGO_ELLIPSIZE_END) label.Label.init() - -method `text=`(label: NativeLabel, text: string) = - procCall label.Label.`text=`(text) - gtk_label_set_text(label.fHandle, text) - app.processEvents() - -method naturalWidth(label: NativeLabel): int {.locks: "unknown".} = label.getTextLineWidth(label.text) + 10 -# Override parent method, to make it big enough for the text to fit in. + label.fFontSize = app.defaultFontSize * 0.95 # ---------------------------------------------------------------------------------------- diff --git a/src/nigui/private/windows/platform_impl.nim b/src/nigui/private/windows/platform_impl.nim index 2ba5f72..3d0cede 100755 --- a/src/nigui/private/windows/platform_impl.nim +++ b/src/nigui/private/windows/platform_impl.nim @@ -1472,12 +1472,8 @@ method `checked=`(checkbox: NativeCheckbox, checked: bool) = # ---------------------------------------------------------------------------------------- proc init(label: NativeLabel) = - label.fHandle = pCreateWindowExWithUserdata("STATIC", WS_CHILD or SS_CENTERIMAGE, 0, pDefaultParentWindow, cast[pointer](label)) label.Label.init() - -method `text=`(label: NativeLabel, text: string) = - procCall label.Label.`text=`(text) - pSetWindowText(label.fHandle, text) + label.fFontSize = app.defaultFontSize * 0.8 # ---------------------------------------------------------------------------------------- diff --git a/src/nigui/private/windows/windows.nim b/src/nigui/private/windows/windows.nim index 6ab983e..26324f8 100755 --- a/src/nigui/private/windows/windows.nim +++ b/src/nigui/private/windows/windows.nim @@ -99,7 +99,7 @@ const SM_CXVSCROLL* = 2 SPI_GETWORKAREA* = 0x0030 SPI_SETKEYBOARDCUES* = 0x100B - SS_CENTERIMAGE* = 0x00000200 + # SS_CENTERIMAGE* = 0x00000200 SW_HIDE* = 0 # SW_MAXIMIZE = 3 SW_SHOW* = 5 |
