gtk-demo: Add a theming example
This commit is contained in:
		| @ -43,6 +43,7 @@ demos =						\ | ||||
| 	stock_browser.c				\ | ||||
| 	textview.c				\ | ||||
| 	textscroll.c				\ | ||||
| 	theming.c				\ | ||||
| 	toolpalette.c				\ | ||||
| 	transparent.c				\ | ||||
| 	tree_store.c				\ | ||||
| @ -76,6 +77,7 @@ EXTRA_DIST += 				\ | ||||
| 	application.gresource.xml	\ | ||||
| 	application.ui			\ | ||||
| 	menus.ui			\ | ||||
| 	theming.ui			\ | ||||
| 	gtk-logo-24.png			\ | ||||
| 	gtk-logo-48.png			\ | ||||
| 	org.gtk.Demo.gschema.xml | ||||
| @ -122,7 +124,13 @@ IMAGEFILES=	alphatest.png		\ | ||||
| 		gnu-keys.png		\ | ||||
| 		gtk-logo-rgb.gif | ||||
|  | ||||
| democode_DATA = $(demos) $(IMAGEFILES) demo.ui menus.ui application.ui | ||||
| democode_DATA = \ | ||||
| 	$(demos)		\ | ||||
| 	$(IMAGEFILES)		\ | ||||
| 	demo.ui			\ | ||||
| 	menus.ui		\ | ||||
| 	application.ui		\ | ||||
| 	theming.ui | ||||
|  | ||||
| DISTCLEANFILES = demos.h | ||||
|  | ||||
|  | ||||
							
								
								
									
										61
									
								
								demos/gtk-demo/theming.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								demos/gtk-demo/theming.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,61 @@ | ||||
| /* Theming :: theming.ui | ||||
|  * | ||||
|  * GTK+ uses CSS for theming. Style classes can be associated | ||||
|  * with widgets to inform the theme about intended rendering. | ||||
|  * | ||||
|  * This demo shows some common examples where theming features | ||||
|  * of GTK+ are used for certain effects: primary toolbars, | ||||
|  * inline toolbars and linked buttons. | ||||
|  */ | ||||
|  | ||||
| #include <gtk/gtk.h> | ||||
| #include "demo-common.h" | ||||
|  | ||||
| static GtkWidget *window = NULL; | ||||
|  | ||||
| GtkWidget * | ||||
| do_theming (GtkWidget *do_widget) | ||||
| { | ||||
|   GtkWidget *grid; | ||||
|   GtkBuilder *builder; | ||||
|   gchar *filename; | ||||
|   GError *err = NULL; | ||||
|  | ||||
|   if (!window) | ||||
|     { | ||||
|       window = gtk_window_new (GTK_WINDOW_TOPLEVEL); | ||||
|       gtk_window_set_screen (GTK_WINDOW (window), | ||||
|                              gtk_widget_get_screen (do_widget)); | ||||
|       gtk_window_set_title (GTK_WINDOW (window), "Theming"); | ||||
|       gtk_container_set_border_width (GTK_CONTAINER (window), 12); | ||||
|       g_signal_connect (window, "destroy", | ||||
|                         G_CALLBACK (gtk_widget_destroyed), &window); | ||||
|  | ||||
|       builder = gtk_builder_new (); | ||||
|       filename = demo_find_file ("theming.ui", NULL); | ||||
|       gtk_builder_add_from_file (builder, filename, &err); | ||||
|       g_free (filename); | ||||
|       if (err) | ||||
|         { | ||||
|           g_error ("ERROR: %s\n", err->message); | ||||
|           return NULL; | ||||
|         } | ||||
|  | ||||
|       grid = (GtkWidget *)gtk_builder_get_object (builder, "grid"); | ||||
|       gtk_widget_show_all (grid); | ||||
|       gtk_container_add (GTK_CONTAINER (window), grid); | ||||
|       g_object_unref (builder); | ||||
|     } | ||||
|  | ||||
|   if (!gtk_widget_get_visible (window)) | ||||
|     { | ||||
|       gtk_widget_show (window); | ||||
|     } | ||||
|   else | ||||
|     { | ||||
|       gtk_widget_destroy (window); | ||||
|       window = NULL; | ||||
|     } | ||||
|  | ||||
|   return window; | ||||
| } | ||||
							
								
								
									
										319
									
								
								demos/gtk-demo/theming.ui
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										319
									
								
								demos/gtk-demo/theming.ui
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,319 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <interface> | ||||
|   <object class="GtkGrid" id="grid"> | ||||
|     <property name="row-spacing">6</property> | ||||
|     <property name="orientation">vertical</property> | ||||
|     <child> | ||||
|       <object class="GtkToolbar" id="toolbar1"> | ||||
|         <property name="visible">True</property> | ||||
|         <property name="can_focus">False</property> | ||||
|         <property name="hexpand">True</property> | ||||
|         <property name="show-arrow">False</property> | ||||
|         <style> | ||||
|           <class name="primary-toolbar"/> | ||||
|         </style> | ||||
|         <child> | ||||
|           <object class="GtkToggleToolButton" id="toolbutton1"> | ||||
|             <property name="use_action_appearance">False</property> | ||||
|             <property name="visible">True</property> | ||||
|             <property name="can_focus">False</property> | ||||
|             <property name="use_action_appearance">False</property> | ||||
|             <property name="label" translatable="yes">Normal</property> | ||||
|             <property name="use_underline">True</property> | ||||
|             <property name="is_important">True</property> | ||||
|             <property name="icon_name">edit-find</property> | ||||
|           </object> | ||||
|           <packing> | ||||
|             <property name="expand">False</property> | ||||
|             <property name="homogeneous">True</property> | ||||
|           </packing> | ||||
|         </child> | ||||
|         <child> | ||||
|           <object class="GtkToggleToolButton" id="toolbutton2"> | ||||
|             <property name="use_action_appearance">False</property> | ||||
|             <property name="visible">True</property> | ||||
|             <property name="can_focus">False</property> | ||||
|             <property name="use_action_appearance">False</property> | ||||
|             <property name="label" translatable="yes">Active</property> | ||||
|             <property name="use_underline">True</property> | ||||
|             <property name="is_important">True</property> | ||||
|             <property name="icon_name">edit-find</property> | ||||
|             <property name="active">True</property> | ||||
|           </object> | ||||
|           <packing> | ||||
|             <property name="expand">False</property> | ||||
|             <property name="homogeneous">True</property> | ||||
|           </packing> | ||||
|         </child> | ||||
|         <child> | ||||
|           <object class="GtkToggleToolButton" id="toolbutton3"> | ||||
|             <property name="use_action_appearance">False</property> | ||||
|             <property name="visible">True</property> | ||||
|             <property name="sensitive">False</property> | ||||
|             <property name="can_focus">False</property> | ||||
|             <property name="label" translatable="yes">Insensitive</property> | ||||
|             <property name="use_underline">True</property> | ||||
|             <property name="is_important">True</property> | ||||
|             <property name="icon_name">edit-find</property> | ||||
|           </object> | ||||
|           <packing> | ||||
|             <property name="expand">False</property> | ||||
|             <property name="homogeneous">True</property> | ||||
|           </packing> | ||||
|         </child> | ||||
|         <child> | ||||
|           <object class="GtkToggleToolButton" id="toolbutton5"> | ||||
|             <property name="use_action_appearance">False</property> | ||||
|             <property name="visible">True</property> | ||||
|             <property name="can_focus">False</property> | ||||
|             <property name="label" translatable="yes">Raised</property> | ||||
|             <property name="use_underline">True</property> | ||||
|             <property name="is_important">True</property> | ||||
|             <property name="icon_name">edit-find-symbolic</property> | ||||
|             <style> | ||||
|               <class name="raised"/> | ||||
|             </style> | ||||
|           </object> | ||||
|           <packing> | ||||
|             <property name="expand">False</property> | ||||
|             <property name="homogeneous">True</property> | ||||
|           </packing> | ||||
|         </child> | ||||
|         <child> | ||||
|           <object class="GtkToggleToolButton" id="toolbutton6"> | ||||
|             <property name="use_action_appearance">False</property> | ||||
|             <property name="visible">True</property> | ||||
|             <property name="can_focus">False</property> | ||||
|             <property name="label" translatable="yes">Raised Active</property> | ||||
|             <property name="use_underline">True</property> | ||||
|             <property name="is_important">True</property> | ||||
|             <property name="icon_name">edit-find-symbolic</property> | ||||
|             <property name="active">True</property> | ||||
|             <style> | ||||
|               <class name="raised"/> | ||||
|             </style> | ||||
|           </object> | ||||
|           <packing> | ||||
|             <property name="expand">False</property> | ||||
|             <property name="homogeneous">True</property> | ||||
|           </packing> | ||||
|         </child> | ||||
|         <child> | ||||
|           <object class="GtkToggleToolButton" id="toolbutton4"> | ||||
|             <property name="use_action_appearance">False</property> | ||||
|             <property name="visible">True</property> | ||||
|             <property name="sensitive">False</property> | ||||
|             <property name="can_focus">False</property> | ||||
|             <property name="label" translatable="yes">Insensitive Active</property> | ||||
|             <property name="use_underline">True</property> | ||||
|             <property name="icon_name">edit-find</property> | ||||
|             <property name="is_important">True</property> | ||||
|             <property name="active">True</property> | ||||
|           </object> | ||||
|           <packing> | ||||
|             <property name="expand">False</property> | ||||
|             <property name="homogeneous">True</property> | ||||
|           </packing> | ||||
|         </child> | ||||
|         <child> | ||||
|           <object class="GtkToolItem" id="toolitementry"> | ||||
|             <property name="use_action_appearance">False</property> | ||||
|             <property name="visible">True</property> | ||||
|             <property name="can_focus">False</property> | ||||
|             <child> | ||||
|               <object class="GtkEntry" id="entry1"> | ||||
|                 <property name="visible">True</property> | ||||
|                 <property name="can_focus">True</property> | ||||
|                 <property name="invisible_char">•</property> | ||||
|                 <property name="placeholder-text" translatable="yes">Search...</property> | ||||
|                 <property name="secondary-icon-name">edit-find-symbolic</property> | ||||
|               </object> | ||||
|             </child> | ||||
|           </object> | ||||
|           <packing> | ||||
|             <property name="expand">False</property> | ||||
|           </packing> | ||||
|         </child> | ||||
|         <child> | ||||
|           <object class="GtkToolItem" id="toolitemswitch"> | ||||
|             <property name="use_action_appearance">False</property> | ||||
|             <property name="visible">True</property> | ||||
|             <property name="can_focus">False</property> | ||||
|             <child> | ||||
|               <object class="GtkSwitch" id="switch1"> | ||||
|                 <property name="visible">True</property> | ||||
|                 <property name="can_focus">True</property> | ||||
|               </object> | ||||
|             </child> | ||||
|           </object> | ||||
|           <packing> | ||||
|             <property name="expand">False</property> | ||||
|           </packing> | ||||
|         </child> | ||||
|       </object> | ||||
|     </child> | ||||
|     <child> | ||||
|       <object class="GtkBox" id="box1"> | ||||
|         <property name="visible">True</property> | ||||
|         <property name="can_focus">False</property> | ||||
|         <property name="orientation">horizontal</property> | ||||
|         <property name="valign">center</property> | ||||
|         <property name="halign">center</property> | ||||
|         <style> | ||||
|           <class name="linked"/> | ||||
|         </style> | ||||
|         <child> | ||||
|           <object class="GtkButton" id="button1"> | ||||
|             <property name="label" translatable="yes">Hi, I am a button</property> | ||||
|             <property name="use_action_appearance">False</property> | ||||
|             <property name="visible">True</property> | ||||
|             <property name="can_focus">True</property> | ||||
|             <property name="receives_default">True</property> | ||||
|             <property name="use_action_appearance">False</property> | ||||
|           </object> | ||||
|           <packing> | ||||
|             <property name="expand">False</property> | ||||
|             <property name="fill">True</property> | ||||
|             <property name="position">0</property> | ||||
|           </packing> | ||||
|         </child> | ||||
|         <child> | ||||
|           <object class="GtkButton" id="button2"> | ||||
|             <property name="label" translatable="yes">And I'm another button</property> | ||||
|             <property name="use_action_appearance">False</property> | ||||
|             <property name="visible">True</property> | ||||
|             <property name="can_focus">True</property> | ||||
|             <property name="receives_default">True</property> | ||||
|             <property name="use_action_appearance">False</property> | ||||
|           </object> | ||||
|           <packing> | ||||
|             <property name="expand">False</property> | ||||
|             <property name="fill">True</property> | ||||
|             <property name="position">1</property> | ||||
|           </packing> | ||||
|         </child> | ||||
|         <child> | ||||
|           <object class="GtkButton" id="button3"> | ||||
|             <property name="label" translatable="yes">This is a button party!</property> | ||||
|             <property name="use_action_appearance">False</property> | ||||
|             <property name="visible">True</property> | ||||
|             <property name="can_focus">True</property> | ||||
|             <property name="receives_default">True</property> | ||||
|             <property name="use_action_appearance">False</property> | ||||
|           </object> | ||||
|           <packing> | ||||
|             <property name="expand">False</property> | ||||
|             <property name="fill">True</property> | ||||
|             <property name="position">2</property> | ||||
|           </packing> | ||||
|         </child> | ||||
|       </object> | ||||
|     </child> | ||||
|     <child> | ||||
|       <object class="GtkToolbar" id="itoolbar1"> | ||||
|         <property name="visible">True</property> | ||||
|         <property name="can_focus">False</property> | ||||
|         <property name="hexpand">True</property> | ||||
|         <property name="icon_size">1</property> | ||||
|         <style> | ||||
|           <class name="inline-toolbar"/> | ||||
|         </style> | ||||
|         <child> | ||||
|           <object class="GtkToggleToolButton" id="itoolbutton1"> | ||||
|             <property name="use_action_appearance">False</property> | ||||
|             <property name="visible">True</property> | ||||
|             <property name="can_focus">False</property> | ||||
|             <property name="use_action_appearance">False</property> | ||||
|             <property name="label" translatable="yes">Normal</property> | ||||
|             <property name="use_underline">True</property> | ||||
|             <property name="icon_name">list-add-symbolic</property> | ||||
|           </object> | ||||
|           <packing> | ||||
|             <property name="expand">False</property> | ||||
|             <property name="homogeneous">True</property> | ||||
|           </packing> | ||||
|         </child> | ||||
|         <child> | ||||
|           <object class="GtkToggleToolButton" id="itoolbutton2"> | ||||
|             <property name="use_action_appearance">False</property> | ||||
|             <property name="visible">True</property> | ||||
|             <property name="can_focus">False</property> | ||||
|             <property name="use_action_appearance">False</property> | ||||
|             <property name="label" translatable="yes">Normal</property> | ||||
|             <property name="use_underline">True</property> | ||||
|             <property name="icon_name">list-add-symbolic</property> | ||||
|           </object> | ||||
|           <packing> | ||||
|             <property name="expand">False</property> | ||||
|             <property name="homogeneous">True</property> | ||||
|           </packing> | ||||
|         </child> | ||||
|         <child> | ||||
|           <object class="GtkToggleToolButton" id="itoolbutton3"> | ||||
|             <property name="use_action_appearance">False</property> | ||||
|             <property name="visible">True</property> | ||||
|             <property name="can_focus">False</property> | ||||
|             <property name="use_action_appearance">False</property> | ||||
|             <property name="label" translatable="yes">Active</property> | ||||
|             <property name="use_underline">True</property> | ||||
|             <property name="icon_name">list-remove-symbolic</property> | ||||
|             <property name="active">True</property> | ||||
|           </object> | ||||
|           <packing> | ||||
|             <property name="expand">False</property> | ||||
|             <property name="homogeneous">True</property> | ||||
|           </packing> | ||||
|         </child> | ||||
|         <child> | ||||
|           <object class="GtkToggleToolButton" id="itoolbutton4"> | ||||
|             <property name="use_action_appearance">False</property> | ||||
|             <property name="visible">True</property> | ||||
|             <property name="can_focus">False</property> | ||||
|             <property name="use_action_appearance">False</property> | ||||
|             <property name="label" translatable="yes">Active</property> | ||||
|             <property name="use_underline">True</property> | ||||
|             <property name="icon_name">list-remove-symbolic</property> | ||||
|             <property name="active">True</property> | ||||
|           </object> | ||||
|           <packing> | ||||
|             <property name="expand">False</property> | ||||
|             <property name="homogeneous">True</property> | ||||
|           </packing> | ||||
|         </child> | ||||
|         <child> | ||||
|           <object class="GtkToggleToolButton" id="itoolbutton5"> | ||||
|             <property name="use_action_appearance">False</property> | ||||
|             <property name="visible">True</property> | ||||
|             <property name="sensitive">False</property> | ||||
|             <property name="can_focus">False</property> | ||||
|             <property name="use_action_appearance">False</property> | ||||
|             <property name="label" translatable="yes">Insensitive</property> | ||||
|             <property name="use_underline">True</property> | ||||
|             <property name="icon_name">edit-find-symbolic</property> | ||||
|           </object> | ||||
|           <packing> | ||||
|             <property name="expand">False</property> | ||||
|             <property name="homogeneous">True</property> | ||||
|           </packing> | ||||
|         </child> | ||||
|         <child> | ||||
|           <object class="GtkToggleToolButton" id="itoolbutton6"> | ||||
|             <property name="use_action_appearance">False</property> | ||||
|             <property name="visible">True</property> | ||||
|             <property name="sensitive">False</property> | ||||
|             <property name="can_focus">False</property> | ||||
|             <property name="use_action_appearance">False</property> | ||||
|             <property name="label" translatable="yes">Insensitive Active</property> | ||||
|             <property name="use_underline">True</property> | ||||
|             <property name="icon_name">go-up-symbolic</property> | ||||
|             <property name="active">True</property> | ||||
|           </object> | ||||
|           <packing> | ||||
|             <property name="expand">False</property> | ||||
|             <property name="homogeneous">True</property> | ||||
|           </packing> | ||||
|         </child> | ||||
|       </object> | ||||
|     </child> | ||||
|   </object> | ||||
| </interface> | ||||
		Reference in New Issue
	
	Block a user
	 Matthias Clasen
					Matthias Clasen