comparison gtk/dw.c @ 1486:5cfbf2715eec

Code simplification on GTK2 and ported the fix to GTK3. If we need to add the fix to spinbuttons and sliders we need only set the data in those functions now.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Sat, 24 Dec 2011 13:18:03 +0000
parents 928daa73de8d
children d77b8cf25f04
comparison
equal deleted inserted replaced
1485:928daa73de8d 1486:5cfbf2715eec
1806 int val = _round_value(adjustment->value); 1806 int val = _round_value(adjustment->value);
1807 GtkWidget *slider = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(adjustment), "_dw_slider"); 1807 GtkWidget *slider = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(adjustment), "_dw_slider");
1808 GtkWidget *spinbutton = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(adjustment), "_dw_spinbutton"); 1808 GtkWidget *spinbutton = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(adjustment), "_dw_spinbutton");
1809 GtkWidget *scrollbar = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(adjustment), "_dw_scrollbar"); 1809 GtkWidget *scrollbar = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(adjustment), "_dw_scrollbar");
1810 1810
1811 if(gtk_object_get_data(GTK_OBJECT(adjustment), "_dw_suppress_value_changed_event"))
1812 return FALSE;
1813
1811 if ( dbgfp != NULL ) _dw_log("%s %d: %s\n",__FILE__,__LINE__,__func__); 1814 if ( dbgfp != NULL ) _dw_log("%s %d: %s\n",__FILE__,__LINE__,__func__);
1812 if (slider) 1815
1816 if (slider || spinbutton || scrollbar)
1813 { 1817 {
1814 SignalHandler work = _get_signal_handler((GtkWidget *)adjustment, data); 1818 SignalHandler work = _get_signal_handler((GtkWidget *)adjustment, data);
1815 1819
1816 if (work.window) 1820 if (work.window)
1817 { 1821 {
1818 int (*valuechangedfunc)(HWND, int, void *) = work.func; 1822 int (*valuechangedfunc)(HWND, int, void *) = work.func;
1819 1823
1820 if(GTK_IS_VSCALE(slider)) 1824 if(slider && GTK_IS_VSCALE(slider))
1821 valuechangedfunc(work.window, (max - val) - 1, work.data); 1825 valuechangedfunc(work.window, (max - val) - 1, work.data);
1822 else 1826 else
1823 valuechangedfunc(work.window, val, work.data); 1827 valuechangedfunc(work.window, val, work.data);
1824 }
1825 }
1826 else if (spinbutton)
1827 {
1828 SignalHandler work = _get_signal_handler((GtkWidget *)adjustment, data);
1829
1830 if (work.window)
1831 {
1832 int (*valuechangedfunc)(HWND, int, void *) = work.func;
1833
1834 valuechangedfunc(work.window, val, work.data);
1835 }
1836 }
1837 else if (scrollbar)
1838 {
1839 gint suppress;
1840 suppress = GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(adjustment), "_dw_suppress_value_changed_event"));
1841 if (!suppress )
1842 {
1843 SignalHandler work = _get_signal_handler((GtkWidget *)adjustment, data);
1844
1845 if (work.window)
1846 {
1847 int (*valuechangedfunc)(HWND, int, void *) = work.func;
1848
1849 valuechangedfunc(work.window, val, work.data);
1850 }
1851 } 1828 }
1852 } 1829 }
1853 return FALSE; 1830 return FALSE;
1854 } 1831 }
1855 1832