summaryrefslogtreecommitdiff
path: root/src/nigui/private
diff options
context:
space:
mode:
authortrustable-code <krauter.simon@arcor.de>2019-08-31 15:42:20 +0200
committertrustable-code <krauter.simon@arcor.de>2019-08-31 15:42:20 +0200
commit41d7e103c09f23f158afd6df442275cc86a66937 (patch)
treea53985326393c4e10d65724b7ded6cf126bab7f6 /src/nigui/private
parent5f1590e390224b31fe9034953d217151a110ec5b (diff)
downloadNiGui-41d7e103c09f23f158afd6df442275cc86a66937.tar.gz
NiGui-41d7e103c09f23f158afd6df442275cc86a66937.zip
Rework initialization of colors
Diffstat (limited to 'src/nigui/private')
-rwxr-xr-xsrc/nigui/private/gtk3/platform_impl.nim16
-rwxr-xr-xsrc/nigui/private/windows/platform_impl.nim10
2 files changed, 21 insertions, 5 deletions
diff --git a/src/nigui/private/gtk3/platform_impl.nim b/src/nigui/private/gtk3/platform_impl.nim
index 098f02c..25d875f 100755
--- a/src/nigui/private/gtk3/platform_impl.nim
+++ b/src/nigui/private/gtk3/platform_impl.nim
@@ -867,7 +867,6 @@ proc pUpdateFont(control: ControlImpl) =
gtk_widget_modify_font(control.fHandle, font)
var rgba: GdkRGBA
control.textColor.pColorToGdkRGBA(rgba)
- gtk_widget_override_color(control.fHandle, GTK_STATE_FLAG_NORMAL, rgba)
method pAddButtonPressEvent(control: ControlImpl) =
gtk_widget_add_events(control.fHandle, GDK_BUTTON_PRESS_MASK)
@@ -1043,7 +1042,9 @@ method setFontBold(control: ControlImpl, fontBold: bool) =
method setTextColor(control: ControlImpl, color: Color) =
procCall control.Control.setTextColor(color)
- control.pUpdateFont()
+ var rgba: GdkRGBA
+ color.pColorToGdkRGBA(rgba)
+ gtk_widget_override_color(control.fHandle, GTK_STATE_FLAG_NORMAL, rgba)
method `setBackgroundColor`(control: ControlImpl, color: Color) =
procCall control.Control.setBackgroundColor(color)
@@ -1258,6 +1259,17 @@ proc init(textBox: NativeTextBox) =
discard g_signal_connect_data(textBox.fHandle, "changed", pControlChangedSignal, cast[pointer](textBox))
textBox.TextBox.init()
+method initStyle(textBox: NativeTextBox) =
+ procCall textBox.TextBox.initStyle()
+ var context = gtk_widget_get_style_context(textBox.fHandle)
+ var rgba: GdkRGBA
+ gtk_style_context_get_background_color(context, GTK_STATE_FLAG_NORMAL, rgba)
+ textBox.fBackgroundColor = rgba.pGdkRGBAToColor()
+ gtk_style_context_get_color(context, GTK_STATE_FLAG_NORMAL, rgba)
+ textBox.fTextColor = rgba.pGdkRGBAToColor()
+ textBox.fUseDefaultBackgroundColor = false
+ textBox.fUseDefaultTextColor = false
+
method text(textBox: NativeTextBox): string = $gtk_entry_get_text(textBox.fHandle)
method `text=`(textBox: NativeTextBox, text: string) =
diff --git a/src/nigui/private/windows/platform_impl.nim b/src/nigui/private/windows/platform_impl.nim
index 133d7dc..0f7ffaf 100755
--- a/src/nigui/private/windows/platform_impl.nim
+++ b/src/nigui/private/windows/platform_impl.nim
@@ -1429,6 +1429,13 @@ proc init(textBox: NativeTextBox) =
pTextBoxOrigWndProc = pSetWindowLongPtr(textBox.fHandle, GWLP_WNDPROC, pTextBoxWndProc)
textBox.TextBox.init()
+method initStyle(textBox: NativeTextBox) =
+ procCall textBox.TextBox.initStyle()
+ textBox.fBackgroundColor = GetSysColor(COLOR_WINDOW).pRgb32ToColor()
+ textBox.fTextColor = fDefaultTextColor
+ textBox.fUseDefaultBackgroundColor = false
+ textBox.fUseDefaultTextColor = false
+
method text(textBox: NativeTextBox): string = pGetWindowText(textBox.fHandle)
method `text=`(textBox: NativeTextBox, text: string) = pSetWindowText(textBox.fHandle, text)
@@ -1465,9 +1472,6 @@ method `selectionStart=`(textBox: NativeTextBox, selectionStart: int) =
method `selectionEnd=`(textBox: NativeTextBox, selectionEnd: int) =
discard SendMessageA(textBox.fHandle, EM_SETSEL, cast[pointer](textBox.selectionStart), cast[pointer](selectionEnd))
-method resetBackgroundColor(textBox: NativeTextBox) =
- textBox.setBackgroundColor(GetSysColor(COLOR_WINDOW).pRgb32ToColor())
- textBox.fUseDefaultBackgroundColor = true
# ----------------------------------------------------------------------------------------
# TextArea