

Code: Select all
// in C
GdkColor color;
gdk_color_parse ("red", &color);
gtk_widget_modify_fg (widget, GTK_STATE_NORMAL, &color);
Code: Select all
Debug "gtk-version:"+Str(#GTK_MAJOR_VERSION)+"."+Str(#GTK_MINOR_VERSION)+"."+Str(#GTK_MICRO_VERSION)
Code: Select all
Enumeration
#MainWindow
#EditorGadget
#ChangeText
EndEnumeration
If OpenWindow(#MainWindow, 100, 200, 260, 260, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget, "Text Entry Colors")
Top.l = 220
If CreateGadgetList(WindowID())
If EditorGadget(#EditorGadget, 10, 10, 240, 200)
For i=1 To 7
AddGadgetItem(#EditorGadget, i, "Line: "+Str(i))
Next
Debug "GadgetID(): 0x"+Hex(GadgetID(#EditorGadget))
Debug "#EditorGadget: "+Str(#EditorGadget)
EndIf
ButtonGadget(#ChangeText, 10, Top, 70, 20, "Change")
EndIf
*editor.GtkWidget
*editor = GadgetID(#EditorGadget)
*tc.GdkColor
*tf.l
color.GdkColor
color\red = 65535
color\green = 0
color\blue = 0
gdk_color_parse_("red", @color)
*rc_style.GtkRcStyle = gtk_rc_style_new_()
*tc = *rc_style\fg
*tf = *rc_style\color_flags
PokeL(*tc, @color) ; *tc = rc_style->fg[0] = fg[ GTK_STATE_NORMAL ]
Debug *tf
*rc_style\color_flags = #GTK_RC_FG
Debug *rc_style\color_flags
; Should be this, but rc_style is NULL
; PokeL(*tf, PeekL(*tf) | #GTK_RC_FG
gtk_widget_modify_style_(*editor, *rc_style);
gtk_rc_style_unref_(*rc_style);
Repeat
EventID = WaitWindowEvent()
If EventGadgetID() = #ChangeText
Debug "Button pushed!"
gtk_text_insert_(*editor, 0, @color, 0, "colored", -1);
EndIf
Until EventID = #PB_Event_CloseWindow
EndIf
Code: Select all
Enumeration
#MainWindow
#EditorGadget
#GreenTextB
#ChangeTextB
EndEnumeration
If OpenWindow(#MainWindow, 100, 200, 260, 260, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget, "Text Entry Colors")
Top.l = 220 ; Top of button row.
*editor.GtkWidget ; Pointer to the Gtk+ editor gadget.
color_green.GdkColor ; GdkColor green
color_red.GdkColor ; GdkColor red
textstate.l = 0 ; 0 = red 1 = green
gdk_color_parse_("green", @color_green);
gdk_color_parse_("red", @color_red);
If CreateGadgetList(WindowID())
If EditorGadget(#EditorGadget, 10, 10, 240, 200)
*editor = GadgetID(#EditorGadget)
gtk_widget_modify_text_(*editor, #GTK_STATE_NORMAL, @color_red)
For i=1 To 7
AddGadgetItem(#EditorGadget, i, "Line: "+Str(i))
Next
EndIf
ButtonGadget(#GreenTextB, 10, Top, 90, 30, "Add Green")
ButtonGadget(#ChangeTextB, 110, Top, 90, 30, "Change")
EndIf
Repeat
EventID = WaitWindowEvent()
If EventGadgetID() = #GreenTextB
gtk_text_insert_(*editor, 0, @color_green, 0, "green!", -1);
ElseIf EventGadgetID() = #ChangeTextB
If textstate = 0
gtk_widget_modify_text_(*editor, #GTK_STATE_NORMAL, @color_green)
textstate = 1
Else
gtk_widget_modify_text_(*editor, #GTK_STATE_NORMAL, @color_red)
textstate = 0
EndIf
EndIf
Until EventID = #PB_Event_CloseWindow
EndIf