\unnumbchapentry{The GIMP Toolkit}{1} \chapentry{Copying}{1}{3} \chapentry{What is GTK?}{2}{5} \chapentry{Types}{3}{7} \secentry{Introduction to the Type System}{3}{1}{7} \secentry{Basic Concepts}{3}{2}{9} \secentry{Simple Types}{3}{3}{12} \secentry{Enumerations and Flags}{3}{4}{13} \secentry{Strings}{3}{5}{13} \secentry{Boxed Types}{3}{6}{13} \secentry{Callbacks}{3}{7}{13} \secentry{Composite Types}{3}{8}{13} \chapentry{Objects}{4}{15} \secentry{Object functions}{4}{1}{15} \chapentry{Signals Overview}{5}{19} \chapentry{Widget Overview}{6}{25} \secentry{The alignment widget}{6}{1}{25} \subsecentry{Description}{6}{1}{1}{25} \subsecentry{Options}{6}{1}{2}{25} \subsecentry{Signals}{6}{1}{3}{26} \subsecentry{Functions}{6}{1}{4}{26} \secentry{The arrow widget}{6}{2}{27} \subsecentry{Description}{6}{2}{1}{27} \subsecentry{Options}{6}{2}{2}{27} \subsecentry{Signals}{6}{2}{3}{27} \subsecentry{Functions}{6}{2}{4}{27} \secentry{The aspect frame widget}{6}{3}{29} \subsecentry{Description}{6}{3}{1}{29} \subsecentry{Options}{6}{3}{2}{29} \subsecentry{Signals}{6}{3}{3}{29} \subsecentry{Functions}{6}{3}{4}{29} \secentry{The bin widget}{6}{4}{30} \subsecentry{Description}{6}{4}{1}{30} \subsecentry{Options}{6}{4}{2}{30} \subsecentry{Signals}{6}{4}{3}{30} \subsecentry{Functions}{6}{4}{4}{30} \secentry{The box widget}{6}{5}{31} \subsecentry{Description}{6}{5}{1}{31} \subsecentry{Options}{6}{5}{2}{32} \subsecentry{Signals}{6}{5}{3}{32} \subsecentry{Functions}{6}{5}{4}{32} \secentry{The button box widget}{6}{6}{34} \subsecentry{Description}{6}{6}{1}{34} \subsecentry{Options}{6}{6}{2}{34} \subsecentry{Signals}{6}{6}{3}{35} \subsecentry{Functions}{6}{6}{4}{35} \secentry{The button widget}{6}{7}{37} \subsecentry{Description}{6}{7}{1}{37} \subsecentry{Signals}{6}{7}{2}{37} \subsecentry{Functions}{6}{7}{3}{37} \secentry{The check button widget}{6}{8}{39} \subsecentry{Description}{6}{8}{1}{39} \subsecentry{Options}{6}{8}{2}{39} \subsecentry{Signals}{6}{8}{3}{39} \subsecentry{Functions}{6}{8}{4}{39} \secentry{The check menu item widget}{6}{9}{40} \subsecentry{Description}{6}{9}{1}{40} \subsecentry{Options}{6}{9}{2}{40} \subsecentry{Signals}{6}{9}{3}{40} \subsecentry{Functions}{6}{9}{4}{40} \secentry{The compound list widget}{6}{10}{42} \subsecentry{Description}{6}{10}{1}{42} \subsecentry{Options}{6}{10}{2}{42} \subsecentry{Signals}{6}{10}{3}{42} \subsecentry{Functions}{6}{10}{4}{42} \secentry{The color selector widget}{6}{11}{46} \subsecentry{Description}{6}{11}{1}{46} \subsecentry{Options}{6}{11}{2}{46} \subsecentry{Signals}{6}{11}{3}{46} \subsecentry{Functions}{6}{11}{4}{46} \secentry{The combo widget}{6}{12}{48} \subsecentry{Description}{6}{12}{1}{48} \subsecentry{Options}{6}{12}{2}{48} \subsecentry{Signals}{6}{12}{3}{48} \subsecentry{Functions}{6}{12}{4}{48} \secentry{The container widget}{6}{13}{49} \subsecentry{Description}{6}{13}{1}{49} \subsecentry{Options}{6}{13}{2}{49} \subsecentry{Signals}{6}{13}{3}{49} \subsecentry{Functions}{6}{13}{4}{49} \secentry{The multi-column tree widget}{6}{14}{51} \subsecentry{Description}{6}{14}{1}{51} \subsecentry{Options}{6}{14}{2}{51} \subsecentry{Signals}{6}{14}{3}{51} \subsecentry{Functions}{6}{14}{4}{51} \secentry{The curve widget}{6}{15}{53} \subsecentry{Description}{6}{15}{1}{53} \subsecentry{Options}{6}{15}{2}{53} \subsecentry{Signals}{6}{15}{3}{53} \subsecentry{Functions}{6}{15}{4}{53} \secentry{The gamma curve widget}{6}{16}{55} \subsecentry{Description}{6}{16}{1}{55} \subsecentry{Options}{6}{16}{2}{55} \subsecentry{Signals}{6}{16}{3}{55} \subsecentry{Functions}{6}{16}{4}{55} \secentry{The dialog widget}{6}{17}{56} \subsecentry{Description}{6}{17}{1}{56} \subsecentry{Options}{6}{17}{2}{56} \subsecentry{Signals}{6}{17}{3}{56} \subsecentry{Functions}{6}{17}{4}{56} \secentry{The drawing area widget}{6}{18}{57} \subsecentry{Description}{6}{18}{1}{57} \subsecentry{Options}{6}{18}{2}{57} \subsecentry{Signals}{6}{18}{3}{57} \subsecentry{Functions}{6}{18}{4}{57} \secentry{The entry widget}{6}{19}{58} \subsecentry{Description}{6}{19}{1}{58} \subsecentry{Options}{6}{19}{2}{58} \subsecentry{Signals}{6}{19}{3}{58} \subsecentry{Functions}{6}{19}{4}{58} \secentry{The event box widget}{6}{20}{60} \subsecentry{Description}{6}{20}{1}{60} \subsecentry{Options}{6}{20}{2}{60} \subsecentry{Signals}{6}{20}{3}{60} \subsecentry{Functions}{6}{20}{4}{60} \secentry{The file selection dialog widget}{6}{21}{61} \subsecentry{Description}{6}{21}{1}{61} \subsecentry{Options}{6}{21}{2}{61} \subsecentry{Signals}{6}{21}{3}{61} \subsecentry{Functions}{6}{21}{4}{61} \secentry{The fixed widget}{6}{22}{62} \subsecentry{Description}{6}{22}{1}{62} \subsecentry{Options}{6}{22}{2}{62} \subsecentry{Signals}{6}{22}{3}{62} \subsecentry{Functions}{6}{22}{4}{62} \secentry{The frame widget}{6}{23}{63} \subsecentry{Options}{6}{23}{1}{63} \subsecentry{Description}{6}{23}{2}{63} \subsecentry{Signals}{6}{23}{3}{63} \subsecentry{Functions}{6}{23}{4}{63} \secentry{The gamma widget}{6}{24}{64} \subsecentry{Description}{6}{24}{1}{64} \subsecentry{Options}{6}{24}{2}{64} \subsecentry{Signals}{6}{24}{3}{64} \subsecentry{Functions}{6}{24}{4}{64} \secentry{The horizontal box widget}{6}{25}{65} \subsecentry{Description}{6}{25}{1}{65} \subsecentry{Options}{6}{25}{2}{65} \subsecentry{Signals}{6}{25}{3}{65} \subsecentry{Functions}{6}{25}{4}{65} \secentry{The horizontal button box widget}{6}{26}{66} \subsecentry{Description}{6}{26}{1}{66} \subsecentry{Options}{6}{26}{2}{66} \subsecentry{Signals}{6}{26}{3}{66} \subsecentry{Functions}{6}{26}{4}{66} \secentry{The horizontal paned widget}{6}{27}{67} \subsecentry{Description}{6}{27}{1}{67} \subsecentry{Options}{6}{27}{2}{67} \subsecentry{Signals}{6}{27}{3}{67} \subsecentry{Functions}{6}{27}{4}{67} \secentry{The horizontal ruler widget}{6}{28}{68} \subsecentry{Description}{6}{28}{1}{68} \subsecentry{Options}{6}{28}{2}{68} \subsecentry{Signals}{6}{28}{3}{68} \subsecentry{Functions}{6}{28}{4}{68} \secentry{The horizontal scale widget}{6}{29}{69} \subsecentry{Description}{6}{29}{1}{69} \subsecentry{Options}{6}{29}{2}{69} \subsecentry{Signals}{6}{29}{3}{69} \subsecentry{Functions}{6}{29}{4}{69} \secentry{The horizontal scrollbar widget}{6}{30}{70} \subsecentry{Description}{6}{30}{1}{70} \subsecentry{Options}{6}{30}{2}{70} \subsecentry{Signals}{6}{30}{3}{70} \subsecentry{Functions}{6}{30}{4}{70} \secentry{The horizontal separator widget}{6}{31}{71} \subsecentry{Description}{6}{31}{1}{71} \subsecentry{Options}{6}{31}{2}{71} \subsecentry{Signals}{6}{31}{3}{71} \subsecentry{Functions}{6}{31}{4}{71} \secentry{The image widget}{6}{32}{72} \subsecentry{Description}{6}{32}{1}{72} \subsecentry{Options}{6}{32}{2}{72} \subsecentry{Signals}{6}{32}{3}{72} \subsecentry{Functions}{6}{32}{4}{72} \secentry{The input dialog widget}{6}{33}{73} \subsecentry{Description}{6}{33}{1}{73} \subsecentry{Options}{6}{33}{2}{73} \subsecentry{Signals}{6}{33}{3}{73} \subsecentry{Functions}{6}{33}{4}{73} \secentry{The item widget}{6}{34}{74} \subsecentry{Description}{6}{34}{1}{74} \subsecentry{Signals}{6}{34}{2}{74} \subsecentry{Functions}{6}{34}{3}{74} \secentry{The label widget}{6}{35}{75} \subsecentry{Description}{6}{35}{1}{75} \subsecentry{Options}{6}{35}{2}{75} \subsecentry{Signals}{6}{35}{3}{75} \subsecentry{Functions}{6}{35}{4}{75} \secentry{The list widget}{6}{36}{76} \subsecentry{Description}{6}{36}{1}{76} \subsecentry{Signals}{6}{36}{2}{76} \subsecentry{Functions}{6}{36}{3}{76} \secentry{The list item widget}{6}{37}{78} \subsecentry{Description}{6}{37}{1}{78} \subsecentry{Options}{6}{37}{2}{78} \subsecentry{Signals}{6}{37}{3}{78} \subsecentry{Functions}{6}{37}{4}{78} \secentry{The menu widget}{6}{38}{79} \subsecentry{Description}{6}{38}{1}{79} \subsecentry{Options}{6}{38}{2}{79} \subsecentry{Signals}{6}{38}{3}{79} \subsecentry{Functions}{6}{38}{4}{79} \secentry{The menu bar widget}{6}{39}{80} \subsecentry{Description}{6}{39}{1}{80} \subsecentry{Options}{6}{39}{2}{80} \subsecentry{Signals}{6}{39}{3}{80} \subsecentry{Functions}{6}{39}{4}{80} \secentry{The menu item widget}{6}{40}{81} \subsecentry{Description}{6}{40}{1}{81} \subsecentry{Options}{6}{40}{2}{81} \subsecentry{Signals}{6}{40}{3}{81} \subsecentry{Functions}{6}{40}{4}{81} \secentry{The menu shell widget}{6}{41}{83} \subsecentry{Description}{6}{41}{1}{83} \subsecentry{Options}{6}{41}{2}{83} \subsecentry{Signals}{6}{41}{3}{83} \subsecentry{Functions}{6}{41}{4}{83} \secentry{The misc widget}{6}{42}{84} \subsecentry{Description}{6}{42}{1}{84} \subsecentry{Options}{6}{42}{2}{84} \subsecentry{Signals}{6}{42}{3}{84} \subsecentry{Functions}{6}{42}{4}{84} \secentry{The notebook widget}{6}{43}{85} \subsecentry{Description}{6}{43}{1}{85} \subsecentry{Options}{6}{43}{2}{85} \subsecentry{Signals}{6}{43}{3}{85} \subsecentry{Functions}{6}{43}{4}{85} \secentry{The option menu widget}{6}{44}{87} \subsecentry{Description}{6}{44}{1}{87} \subsecentry{Options}{6}{44}{2}{87} \subsecentry{Signals}{6}{44}{3}{87} \subsecentry{Functions}{6}{44}{4}{87} \secentry{The paned widget}{6}{45}{88} \subsecentry{Description}{6}{45}{1}{88} \subsecentry{Options}{6}{45}{2}{88} \subsecentry{Signals}{6}{45}{3}{88} \subsecentry{Functions}{6}{45}{4}{88} \secentry{The pixmap widget}{6}{46}{89} \subsecentry{Description}{6}{46}{1}{89} \subsecentry{Options}{6}{46}{2}{89} \subsecentry{Signals}{6}{46}{3}{89} \subsecentry{Functions}{6}{46}{4}{89} \secentry{The preview widget}{6}{47}{90} \subsecentry{Description}{6}{47}{1}{90} \subsecentry{Options}{6}{47}{2}{90} \subsecentry{Signals}{6}{47}{3}{90} \subsecentry{Functions}{6}{47}{4}{90} \secentry{The progress bar widget}{6}{48}{92} \subsecentry{Description}{6}{48}{1}{92} \subsecentry{Options}{6}{48}{2}{92} \subsecentry{Signals}{6}{48}{3}{92} \subsecentry{Functions}{6}{48}{4}{92} \secentry{The radio button widget}{6}{49}{93} \subsecentry{Description}{6}{49}{1}{93} \subsecentry{Options}{6}{49}{2}{93} \subsecentry{Signals}{6}{49}{3}{93} \subsecentry{Functions}{6}{49}{4}{93} \secentry{The radio button widget}{6}{50}{94} \subsecentry{Description}{6}{50}{1}{94} \subsecentry{Options}{6}{50}{2}{94} \subsecentry{Signals}{6}{50}{3}{94} \subsecentry{Functions}{6}{50}{4}{94} \secentry{The range widget}{6}{51}{95} \subsecentry{Description}{6}{51}{1}{95} \subsecentry{Options}{6}{51}{2}{95} \subsecentry{Signals}{6}{51}{3}{95} \subsecentry{Functions}{6}{51}{4}{95} \secentry{The ruler widget}{6}{52}{97} \subsecentry{Description}{6}{52}{1}{97} \subsecentry{Options}{6}{52}{2}{97} \subsecentry{Signals}{6}{52}{3}{97} \subsecentry{Functions}{6}{52}{4}{97} \secentry{The scale widget}{6}{53}{98} \subsecentry{Description}{6}{53}{1}{98} \subsecentry{Options}{6}{53}{2}{98} \subsecentry{Signals}{6}{53}{3}{98} \subsecentry{Functions}{6}{53}{4}{98} \secentry{The scrollbar widget}{6}{54}{99} \subsecentry{Description}{6}{54}{1}{99} \subsecentry{Options}{6}{54}{2}{99} \subsecentry{Signals}{6}{54}{3}{99} \subsecentry{Functions}{6}{54}{4}{99} \secentry{The scrolled window widget}{6}{55}{100} \subsecentry{Description}{6}{55}{1}{100} \subsecentry{Options}{6}{55}{2}{100} \subsecentry{Signals}{6}{55}{3}{100} \subsecentry{Functions}{6}{55}{4}{100} \secentry{The separator widget}{6}{56}{101} \subsecentry{Description}{6}{56}{1}{101} \subsecentry{Options}{6}{56}{2}{101} \subsecentry{Signals}{6}{56}{3}{101} \subsecentry{Functions}{6}{56}{4}{101} \secentry{The statusbar widget}{6}{57}{102} \subsecentry{Description}{6}{57}{1}{102} \subsecentry{Options}{6}{57}{2}{102} \subsecentry{Signals}{6}{57}{3}{102} \subsecentry{Functions}{6}{57}{4}{102} \secentry{The table widget}{6}{58}{103} \subsecentry{Description}{6}{58}{1}{103} \subsecentry{Options}{6}{58}{2}{103} \subsecentry{Signals}{6}{58}{3}{103} \subsecentry{Functions}{6}{58}{4}{103} \secentry{The text widget}{6}{59}{105} \subsecentry{Description}{6}{59}{1}{105} \subsecentry{Signals}{6}{59}{2}{105} \subsecentry{Functions}{6}{59}{3}{105} \secentry{The toggle button widget}{6}{60}{106} \subsecentry{Description}{6}{60}{1}{106} \subsecentry{Options}{6}{60}{2}{106} \subsecentry{Signals}{6}{60}{3}{106} \subsecentry{Functions}{6}{60}{4}{106} \secentry{The tool bar widget}{6}{61}{108} \subsecentry{Description}{6}{61}{1}{108} \subsecentry{Options}{6}{61}{2}{108} \subsecentry{Signals}{6}{61}{3}{108} \subsecentry{Functions}{6}{61}{4}{108} \secentry{The tool tips widget}{6}{62}{110} \subsecentry{Description}{6}{62}{1}{110} \subsecentry{Options}{6}{62}{2}{110} \subsecentry{Signals}{6}{62}{3}{110} \subsecentry{Functions}{6}{62}{4}{110} \secentry{The tree widget}{6}{63}{111} \subsecentry{Description}{6}{63}{1}{111} \subsecentry{Options}{6}{63}{2}{111} \subsecentry{Signals}{6}{63}{3}{111} \subsecentry{Functions}{6}{63}{4}{111} \secentry{The tree item widget}{6}{64}{113} \subsecentry{Description}{6}{64}{1}{113} \subsecentry{Options}{6}{64}{2}{113} \subsecentry{Signals}{6}{64}{3}{113} \subsecentry{Functions}{6}{64}{4}{113} \secentry{The vertical box widget}{6}{65}{114} \subsecentry{Description}{6}{65}{1}{114} \subsecentry{Options}{6}{65}{2}{114} \subsecentry{Signals}{6}{65}{3}{114} \subsecentry{Functions}{6}{65}{4}{114} \secentry{The vertical button box widget}{6}{66}{115} \subsecentry{Description}{6}{66}{1}{115} \subsecentry{Options}{6}{66}{2}{115} \subsecentry{Signals}{6}{66}{3}{115} \subsecentry{Functions}{6}{66}{4}{115} \secentry{The viewport widget}{6}{67}{116} \subsecentry{Description}{6}{67}{1}{116} \subsecentry{Signals}{6}{67}{2}{116} \subsecentry{Functions}{6}{67}{3}{116} \secentry{The vertical paned widget}{6}{68}{117} \subsecentry{Description}{6}{68}{1}{117} \subsecentry{Options}{6}{68}{2}{117} \subsecentry{Signals}{6}{68}{3}{117} \subsecentry{Functions}{6}{68}{4}{117} \secentry{The vertical ruler widget}{6}{69}{118} \subsecentry{Description}{6}{69}{1}{118} \subsecentry{Options}{6}{69}{2}{118} \subsecentry{Signals}{6}{69}{3}{118} \subsecentry{Functions}{6}{69}{4}{118} \secentry{The vertical ruler widget}{6}{70}{119} \subsecentry{Description}{6}{70}{1}{119} \subsecentry{Options}{6}{70}{2}{119} \subsecentry{Signals}{6}{70}{3}{119} \subsecentry{Functions}{6}{70}{4}{119} \secentry{The vertical scrollbar widget}{6}{71}{120} \subsecentry{Description}{6}{71}{1}{120} \subsecentry{Options}{6}{71}{2}{120} \subsecentry{Signals}{6}{71}{3}{120} \subsecentry{Functions}{6}{71}{4}{120} \secentry{The vertical separator widget}{6}{72}{121} \subsecentry{Description}{6}{72}{1}{121} \subsecentry{Signals}{6}{72}{2}{121} \subsecentry{Functions}{6}{72}{3}{121} \secentry{The base widget}{6}{73}{122} \subsecentry{Description}{6}{73}{1}{122} \subsecentry{Signals}{6}{73}{2}{122} \subsecentry{Functions}{6}{73}{3}{124} \secentry{The window widget}{6}{74}{127} \subsecentry{Description}{6}{74}{1}{127} \subsecentry{Options}{6}{74}{2}{127} \subsecentry{Signals}{6}{74}{3}{128} \subsecentry{Functions}{6}{74}{4}{128} \chapentry{Utility objects}{7}{131} \secentry{The accelerator table object}{7}{1}{131} \subsecentry{Description}{7}{1}{1}{131} \subsecentry{Functions}{7}{1}{2}{131} \secentry{The adjustment object}{7}{2}{132} \subsecentry{Description}{7}{2}{1}{132} \subsecentry{Functions}{7}{2}{2}{132} \secentry{The GC object}{7}{3}{133} \subsecentry{Description}{7}{3}{1}{133} \subsecentry{Functions}{7}{3}{2}{133} \secentry{The data object}{7}{4}{134} \subsecentry{Description}{7}{4}{1}{134} \subsecentry{Functions}{7}{4}{2}{134} \secentry{The style object}{7}{5}{135} \subsecentry{Description}{7}{5}{1}{135} \subsecentry{Functions}{7}{5}{2}{135} \chapentry{Initialization, exit and other features}{8}{137} \secentry{Initializing and exiting GTK}{8}{1}{137} \subsecentry{Initializing}{8}{1}{1}{137} \subsecentry{Exiting}{8}{1}{2}{137} \subsecentry{Functions}{8}{1}{3}{137} \secentry{Customization of the library}{8}{2}{138} \subsecentry{Description}{8}{2}{1}{138} \subsecentry{Functions}{8}{2}{2}{138} \secentry{Simplified menu creation}{8}{3}{139} \secentry{Simplified tree creation}{8}{4}{140} \secentry{Pop up help mechanism}{8}{5}{141} \subsecentry{Description}{8}{5}{1}{141} \secentry{Resource Files}{8}{6}{142} \secentry{Macros defined by all objects}{8}{7}{143} \chapentry{Using GTK}{9}{145} \secentry{The simplest GTK program}{9}{1}{145} \secentry{Hello world in GTK}{9}{2}{146} \secentry{An enhanced hello world}{9}{3}{146} \secentry{Making Hello World II robust}{9}{4}{147} \chapentry{Object internals}{10}{149} \chapentry{Signal internals}{11}{151} \chapentry{Widget internals}{12}{153} \unnumbchapentry{Function Index}{155} \unnumbchapentry{Concept Index}{165}