summaryrefslogtreecommitdiff
path: root/src/nigui/private
diff options
context:
space:
mode:
authortrustable-code <krauter.simon@arcor.de>2020-02-16 01:38:34 +0100
committertrustable-code <krauter.simon@arcor.de>2020-02-16 01:38:34 +0100
commitec650392735515f663d079f40ce07cb036d3f97d (patch)
tree50d4fcdab76be9ab7411771db3ce5fe9cdb1c4d3 /src/nigui/private
parent1cd4b28eb9f81114099acf2179cf134143fa3c7e (diff)
downloadNiGui-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-xsrc/nigui/private/gtk3/gtk3.nim6
-rwxr-xr-xsrc/nigui/private/gtk3/platform_impl.nim13
-rwxr-xr-xsrc/nigui/private/windows/platform_impl.nim6
-rwxr-xr-xsrc/nigui/private/windows/windows.nim2
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