ebook 86-2

Size: px
Start display at page:

Download "ebook 86-2"

Transcription

1 2 Gtk+/Gnome 2.1 Gtk+/Gnome G t k + / G n o m e G t k + G n o m L i n u x Red Hat Linux 6.0/6.1 TurboLinux 4.0 G t k + G n o m e G t k + G n o m e a u t o m a k e a u t o c o n f i g g c c g d b I n t e r n e t G t k + We b h t t p :// w w w. g t k. o rg G t k + G t k + L i n u x G t k g t k t a r. g z. t a r. g z g u n z i p gunzip gtk tar.gz. t a r t a r tar -xvf gtk tar c o n f i g u r e m a k e f i l e. / c o n f i g u r e m a k e m a k e make install / s b i n / l d c o n f i g G t k + g l i b g l i b G t k + G t k + e x a m p l e s G t k + G t k + G t k G n o m e h t t p :// w w w. g n o m e. o rg G t k +

2 2 G t k + / G n o m e Gtk G t k + G t k + / G n o m e G T K G n o m e s h e l l k i l l /* base.c */ #include <gtk/gtk.h> int main( int argc, char *argv[] ) GtkWidget *window; gtk_init (&argc, &argv); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_widget_show (window); gtk_main (); r e t u r n ( 0 ); /* */ /* * / L i n u x C /* */ / / g c c gcc base.c -o base `gtk-config --cflags --libs` gtk-config --cflags--libs 1 Hello Wo r l d 2-1./ b a s e 2-1 Gtk g t k b u t t o n. h g t k / g t k. h G t k + g d k. h g l i b. h G n o m e g n o m e. h g n o m e. h g t k. h #include <gtk/gtk.h> : gtk_init (&argc, &argv); gtk_init(gint *argc, gchar ***arg v ) G T K gdk_init(gint *argc, gchar ***arg v )

3 10 Linux GUI, --gtk-module --g-fatal-warnings --gtk-debug --gtk-no-debug --gdk-debug --gdk-no-debug --display --sync --no-xshm --name --class G t k window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_widget_show (window); G T K _ W I N D O W _ TO P L E V E L g t k _ w i d g e t _ s h o w () G t k G t k gtk_main (); g t k _ m a i n () G t k, Gtk X ( ) Ti m e o u t / S h e l l k i l l C /* */ C + + // C GTK Hello World G t k Hello Wo r l d G t k + 1. /* helloworld helloworld.c */ #include <gtk/gtk.h> /* */ void hello( GtkWidget *widget, gpointer data ) g_print ("Hello World\n");

4 2 G t k + / G n o m e 11 gint delete_event( GtkWidget *widget, GdkEvent *event, gpointer data ) /* " d e l e t e _ e v e n t " F A L S E GTK "destroy" * T R U E * "?" */ g_print ("delete event occurred\n"); /* T R U E F A L S E " d e l e t e _ e v e n t " */ r e t u r n ( T R U E ); /* */ void destroy( GtkWidget *widget, gpointer data ) g t k _ m a i n _ q u i t (); int main( int argc, char *argv[] ) /* GtkWidget */ GtkWidget *window; GtkWidget *button; /* G t k * */ gtk_init(&argc, &argv); /* */ window = gtk_window_new (GTK_WINDOW_TOPLEVEL); /* " d e l e t e _ e v e n t " ( * " " * " c l o s e " ) * d e l e t e _ e v e n t () * N U L L */ gtk_signal_connect (GTK_OBJECT (window), "delete_event", GTK_SIGNAL_FUNC (delete_event), NULL); /* " d e s t o r y " * g t k _ w i d g e t _ d e s t r o y () * " d e l e t e _ e v e n t " F A L S E * */ gtk_signal_connect (GTK_OBJECT (window), "destroy", GTK_SIGNAL_FUNC (destroy), NULL); /* */ gtk_container_set_border_width (GTK_CONTAINER (window), 10); /* "Hello World" */ button = gtk_button_new_with_label ("Hello World"); /* " c l i c k e d " h e l l o () * N U L L h e l l o () */ gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (hello), NULL); /* g t k _ w i d g e t _ d e s t r o y ( w i n d o w ) * " d e s t o r y " */ gtk_signal_connect_object (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (gtk_widget_destroy), GTK_OBJECT (window));

5 12 Linux GUI /* g t k */ gtk_container_add (GTK_CONTAINER (window), button); /* */ gtk_widget_show (button); /* */ gtk_widget_show (window); /* G T K g t k _ m a i n () * */ gtk_main (); r e t u r n ( 0 ); /* */ 2. Hello Wo r l d gcc -Wall -g helloworld.c -o helloworld `gtk-config --cflags` \ `gtk-config --libs` G t k g t k - c o n f i g G t k gtk-config --cflags gtk-config --libs `gtk-config --cflags --libs` G T K ( - l g t k ), G d k G D K ( - l g d k ) X l i b g m o d u l e ( - l g m o d u l e ) g l i b ( - l g l i b ) g _ p r i n t () G t k G l i b g l i b X l i b ( - l X 11 ) G D K X e x t ( - l X e x t ) p i x m a p s X (- l m ) G T K Gtk+ h e l l o w o r l d G T K g t k _ m a i n 1. s i g n a l G T K d e s t o r y t o g g l e b u t t o n t o g g l e d gint gtk_signal_connect( GtkObject *object, gchar *name, GtkSignalFunc func, gpointer func_data );

6 2 G t k + / G n o m e 13 * o b j e c t * n a m e f u n c f u n c _ d a t a, void callback_func( GtkWidget *widget, gpointer callback_data );, Clist select_row h e l l o w o r l d gint gtk_signal_connect_object( GtkObject *object, gchar *name, GtkSignalFunc func, GtkObject *slot_object ); g t k _ s i g n a l _ c o n n e c t _ o b j e c t ( ) g t k _ s i g n a l _ c o n n e c t ( ) G T K void callback_func( GtkObject *object); o b j e c t g t k _ s i g n a l _ c o n n e c t _ o b j e c t () G t k h e l l o w o r l d G T K G t k Wi d g e t g t k _ s i g n a l _ c o n n e c t _ o b j e c t ( ) 2. X X Wi n d o w : b u t t o n _ p r e s s _ e v e n t m o t i o n _ n o t i f y _ e v e n t d e s t r o y _ e v e n t k e y _ p r e s s _ e v e n t e n t e r _ n o t i f y _ e v e n t c o n f i g u r e _ e v e n t f o c u s _ o u t _ e v e n t b u t t o n _ r e l e a s e _ e v e n t delete_event e x p o s e _ e v e n t k e y _ r e l e a s e _ e v e n t l e a v e _ n o t i f y _ e v e n t f o c u s _ i n _ e v e n t map_event unmap g t k _ s i g n a l _ c o n n e c t

7 14 Linux GUI Void func( GtkWidget *widget, GdkEvent *event, gpointer callback_data ); G d k E v e n t C GDK_NOTHING GDK_DELETE GDK_DESTROY GDK_EXPOSE GDK_MOTION_NOTIFY GDK_BUTTON_PRESS GDK_2BUTTON_PRESS GDK_3BUTTON_PRESS GDK_BUTTON_RELEASE GDK_KEY_PRESS GDK_KEY_RELEASE GDK_ENTER_NOTIFY GDK_LEAVE_NOTIFY GDK_FOCUS_CHANGE GDK_CONFIGURE GDK_MAP GDK_UNMAP GDK_PROPERTY_NOTIFY G D K _ S E L E C T I O N _ C L E A R G D K _ S E L E C T I O N _ R E Q U E S T G D K _ S E L E C T I O N _ N O T I F Y GDK_PROXIMITY_IN GDK_PROXIMITY_OUT GDK_DRAG_BEGIN GDK_DRAG_REQUEST GDK_DROP_ENTER GDK_DROP_LEAVE GDK_DROP_DATA_AVAIL GDK_CLIENT_EVENT GDK_VISIBILITY_NOTIFY GDK_NO_EXPOSE G D K _ O T H E R _ E V E N T /* */ gtk_signal_connect( GTK_OBJECT(button), "button_press_event", G T K _ S I G N A L _ F U N C ( b u t t o n _ p r e s s _ c a l l b a c k ), N U L L ); b u t t o n b u t t o n _ p r e s s _ c a l l b a c k static gint button_press_callback( GtkWidget *widget, GdkEventButton *event, gpointer data); G d k E v e n t B u t t o n G T K T R U E FA L S E Hello World G t k + h e l l o w o r l d c l i c k e d, void hello( GtkWidget *widget, gpointer data )

8 2 G t k + / G n o m e 15 g_print ("Hello World\n"); d e l e t e _ e v e n t G T K T R U E d e s t o r y FA L S E d e s t o r y d e s t o r y gint delete_event( GtkWidget *widget, GdkEvent *event, gpointer data ) g_print ("destory occurred\n"); r e t u r n ( T R U E ); g t k _ m a i n _ q u i t () G T K g t k _ m a i n void destory( GtkWidget *widget, gpointer data ) gtk_main_quit (); m a i n () C m a i n () int main( int argc,char *argv[] ) G t k Wi d g e t GtkWidget *window; GtkWidget *button; g t k _ i n i t G T K a rg c a rg v gtk_init (&argc, &argv); G t k Widget *window g t k _ w i d g e t _ s h o w ( w i n d o w ) window = gtk_window_new (GTK_WINDOW_TOPLEVEL); d e l e t e _ e v e n t d e s t o r y g t k _ w i d g e t _ d e s t r o y () d e l e t e _ e v e n t FA L S E G T K _ O B J E C T G T K _ S I G N A L _ F U N C gtk_signal_connect (GTK_OBJECT (window), "delete_event", GTK_SIGNAL_FUNC (delete_event),null); gtk_signal_connect (GTK_OBJECT (window), "destory", GTK_SIGNAL_FUNC (destory),null);

9 16 Linux GUI 10 G T K _ C O N TA I N E R gtk_container_set_border_width (GTK_CONTAINER (window), 10); G t k Wi d g e t Hello Wo r l d button = gtk_button_new_with_label ("Hello World");, c l i c k e d h e l l o () N U L L h e l l o () c l i c k e d gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (hello),null); d e s t r o y h e l l o () g t k _ w i d g e t _ d e s t r o y ( ) G t k Widget *widget gtk_signal_connect_object() g t k _ s i g n a l _ c o n n e c t () gtk_signal_connect_object (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (gtk_widget_destroy), GTK_OBJECT (window)); G T K G T gtk_container_add (GTK_CONTAINER (window),btutton); G T K, gtk_widget_show (button); gtk_widget_show (window);, g t k _ m a i n () X gtk_main (); m a i n () g t k _ q u i t () return (0);, G T K c l i c k e d

10 2 G t k + / G n o m e 17 h e l l o () N U L L g t k _ w i d g e t _ d e s t r o y () d e s t r o y d e s t r o y () G T K d e l e t e _ e v e n t d e l e t e _ e v e n t T R U E FA L S G T K d e s t r o y d e s t r o y G T K helloworld h e l l o w o r l d h e l l o w o r l d 2-2./ h e l l o w o r l d 2-2 Gtk Hello Wo r l d Hello Wo r l d 2.3 Gnome G t k + L i n u x G n o m e g n o m e. h g t k. h #include <gnome.h> g n o m e. h g t k. g n o m e _ i n i t () g t k _ i n i t () G n o m e _ i n i t () gnome_init(const char* app_id, const char* app_version, int argc, char** argv) g n o m e _ i n i t () g t k _ i n i t () g n o m e _ i n i t () G n o m e ( ) g t k _ i n i t () g n o m e _ i n i t () g t k _ i n i t () a rg c a rg v g n o m e _ i n i t _ w i t h _ p o p t _ t a b l e () g n o m e _ i n i t () 0 G n o m e 0 ( X g n o m e _ i n i t () Gnome 1.0 G n o m e G n o m e G N U g e t t e x t b i n d t e x t d o m a i n ()

11 18 Linux GUI textdomain() bindtextdomain (PACKAGE, PACKAGE_LOCALE_DIR); textdomain (PACKAGE); G n o m e G t k 2.4 GNU C GNU C ( g c c ) ANSI C C g c c g c c C C + + gcc gcc gcc g c c gcc gcc [options] [filenames] gcc gcc 100 g c c L i n u x gcc -p -g test.c gcc -pg test.c g c c t e s t. c p r o f g c c g p r o f gcc ( ) a.out a. o u t gcc test.c - o a. o u t c o u n t. c C c o u n t gcc -o count count.c gcc - c gcc C g c c.o -S g c c C gcc. s - E

12 2 G t k + / G n o m e g c c C gcc - O - O 2 - O g c c - O 2 g c c - O 2 - O - O - O 2 2. gcc - g - p g - g g c c G N U g d b g c c C g c c - g -O ( ) g c c - p g g c c g p r o f g c c g c G C C - H O W TO s h e l l man gcc g c c G N U a u t o c o n f a u t o m a k e l i b t o o l G U I G l a d e a u t o g e n. s h 2.5 m a i n g t k _ i n i t () G t k + G n o m e g n o m e _ i n i t () g t k _ i n i t () g n o m e _ i n i t () g t k _ i n i t ()) g n o m e _ i n i t ( ) G n o m e ( ) Gnome #include <libgnomeui/gnome-init.h> int gnome_init(const char* app_id, const char* app_version, int argc, char** argv) g t k _ i n i t () g n o m e _ i n i t () g t k _ i n i t ()

13 20 Linux GUI a rg c a rg v g n o m e _ i n i t _ w i t h _ p o p t _ t a b l e () g n o m e _ i n i t () 0 0 ( X g n o m e _ i n i t () ) G n o m e 2.6 popt G n o m e G n o m e p o p t p o p t G n o m e G n o m e -- h e l p G n o m e p o p t g n o m e _ i n i t _ w i t h _ p o p t _ t a b l e () g n o m e _ i n i t ( ) #include <libgnomeui/gnome-init.h> int gnome_init_with_popt_table(const char* app_id, const char* app_version, int argc, char** argv, const struct poptoption* options, int flags, poptcontext* return_ctx) p o p t p o p t O p t i o n struct poptoption const char* longname; char shortname; int arginfo; void* arg; int val; char* descrip; char* argdescrip; ; p o p t O p t i o n l o n g N a m e s h o r t N a m e h e l p h h e l p - h N U L L ' \0 ' a rg i n f o POPT_ARG_NONE P O P T _ A R G _ S T R I N G -- g e o m e t r y = " " POPT_ARG_INT -- c o l u m n s = 10.

14 2 G t k + / G n o m e 21 POPT_ARG_LONG P O P T _ A R G _ I N C L U D E _ TA B L E p o p t O p t i o n p o p t P O P T _ A R G _ C A L L B A C K p o p t O p t i o n POPT_ARG_INTL_DOMAIN p o p t O p t i o n a rg a i n f o a rg p o p t P O P T _ A R G _ N O N E * a rg T R U E a rg N U L L p o p t P O P T _ A R G _ I N C L U D E _ TA B L E a rg P O P T _ A R G _ C A L L B A C K P O P T _ A R G _ I N T L _ D O M A I N v a l G n o m e 0 -- h e l p d e s c r i p a rgdescrip -- d i s p l a y --display=display X display to use a rg D e s c r i p D I S P L AY d e s c r i p X display to use _ P O P T _ A R G _ I N C L U D E _ TA B L E d e s c r i p -?, --help - - u s a g e p o p t POPT_ARG_CALLBACK typedef void (*poptcallbacktype)(poptcontext con, enum poptcallbackreason reason, const struct poptoption* opt, const char* arg, void* data); p o p t C o n t e x t p o p t p o p t p o p p o p y C o n t e x p o p t C a l l b a c k R e a s o n POPT_CALLBACK_REASON_PRE POPT_CALLBACK_REASON_POST POPT_CALLBACK_REASON_OPTION POPT_CALLBACK_REASON_OPTION r e s o n r e s o n

15 22 Linux GUI P O P T _ C A L L B A C K _ R E A S O N _ P R E P O P T _ C A L L B A C K _ R E A S O N _ P O S T POPT_ARG_CALLBACK p o p t O p t i o n NULL, \ 0, POPT_ARG_CALLBACK POPT_CBFLAG_PRE POPT_CBFLAG_POST, &parse_an_arg_callback, 0, NULL o p t p o p t O p t i o n v a l a rg d a t a p o p y O p t i o n d e s c r i p G n o m e g n o m e _ i n i t _ w i t h _ p o p t _ t a b l e () f l a g s f l a g g n o m e _ i n i t _ w i t h _ p o p t _ t a b l e () r e t u r n _ c t x p o p t G e t A rg s ( ) char** args; poptcontext ctx; int i; bindtextdomain (PACKAGE, GNOMELOCALEDIR); textdomain (PACKAGE); gnome_init_with_popt_table(appname, VERSION, argc, argv, options, 0, &ctx); args = poptgetargs(ctx); if (args!= NULL) i = 0; while (args[i]!= NULL) /* Do something with each argument */ + + i ; p o p t F r e e C o n t e x t ( c t x ) ; p o p t C o n t e x t r e t u r n _ c t x N U L L p o p t G e t A rg s () N U L L GnomeHello G n o m e H e l l o G n o m e G n o m e H e l l o h e l p G n o m e H e l l o $./hello --help

16 Usage: hello [OPTION...] GNOME Options --disable-sound --enable-sound --espeaker=hostname:port 2 G t k + / G n o m e 23 Disable sound server usage Enable sound server usage Host:port on which the sound server to use is r u n n i n g Help options -?, --help Show this help message --usage Display brief usage message GTK options --gdk-debug=flags --gdk-no-debug=flags --display=display --sync --no-xshm --name=name --class=class -- g x i d _ h o s t = H O S T -- g x i d _ p o r t = P O R T -- x i m - p r e e d i t = S T Y L E -- x i m - s t a t u s = S T Y L E --gtk-debug=flags --gtk-no-debug=flags --g-fatal-warnings --gtk-module=module Gdk debugging flags to set Gdk debugging flags to unset X display to use Make X calls synchronous Don t use X shared memory extension Program name as used by the window manager Program class as used by the window manager Gtk+ debugging flags to set Gtk+ debugging flags to unset Make all warnings fatal Load an additional Gtk module GNOME GUI options -V, --version Help options -?, --help Show this help message --usage Display brief usage message Session management options --sm-client-id=id --sm-config-prefix=prefix --sm-disable Specify session management ID Specify prefix of saved configuration Disable connection to session manager GnomeHello options -g, --greet -m, --message=message --geometry=geometry $ Say hello to specific people listed on the command line Specify a message other than "Hello, World!" Specify the geometry of the main window G n o m e GnomeHello options G n o m e H e l l o -- g r e e t - g G n o m e H e l l o -- m e s s a g e Hello, Wo r l d! -- g e o m e t r y

17 24 Linux GUI X G n o m e H e l l o p o p t static int greet_mode = FALSE; static char* message = NULL; static char* geometry = NULL; struct poptoption options[] = " g r e e t ", g, P O P T _ A R G _ N O N E, & g r e e t _ m o d e, 0, N_("Say hello to specific people listed on the command line"), N U L L, " m e s s a g e ", m, P O P T _ A R G _ S T R I N G, & m e s s a g e, 0, N_("Specify a message other than \"Hello, World!\""), N _(" M E S S A G E "), " g e o m e t r y ", \ 0, P O P T _ A R G _ S T R I N G, & g e o m e t r y, 0, N_("Specify the geometry of the main window"), N _(" G E O M E T R Y "), N U L L, \ 0, 0, N U L L, 0, N U L L, N U L L ; m a i n () G n o m e H e l l o GtkWidget* app; poptcontext pctx; char** args; int i;

18 2 G t k + / G n o m e 25 GSList* greet = NULL; GnomeClient* client; bindtextdomain(package, GNOMELOCALEDIR); t e x t d o m a i n ( P A C K A G E ); gnome_init_with_popt_table(package, VERSION, argc, argv, options, 0, &pctx); /* Argument parsing */ args = poptgetargs(pctx); if (greet_mode && args) i = 0; while (args[i]!= NULL) greet = g_slist_prepend(greet, args[i]); + + i ; /* Put them in order */ greet = g_slist_reverse(greet); else if (greet_mode && args == NULL) g_error(_("you must specify someone to greet.")); else if (args!= NULL) g_error(_("command line arguments are only allowed with --greet.")); e l s e g_assert(!greet_mode && args == NULL); p o p t F r e e C o n t e x t ( p c t x ) ; 2.7 G n o m e G N U g e t t e x t g e t t e x t / ( ) g e t t e x t

19 26 Linux GUI #include <libgnome/gnome-i18n.h> _(string) N_(string) G n o m e _() C N _() N _() #include <gnome.h> static char* a[] = N_("Translate Me"), N_("Me Too") ; int main(int argc, char** argv) bindtextdomain(package, GNOMELOCALEDIR); t e x t d o m a i n ( P A C K A G E ); printf(_("translated String\n")); p r i n t f (_( a [ 0 ])); p r i n t f (_( a [ 1 ])); return 0; Translate Me To o g e t t e x t _() Translated String b i n d t e x t d o m a i n () t e x t d o m a i n () PA C K A G E c o n f i g. h G N O M E L O C A L E D I R, M a k e f i l e. a m ( $ ( p r e f i x )/ s h a r e / l o c a l e $ ( d a t a d i r )/ l o c a l e ) G N O M E L O C A L E D I R gchar* message = g_strconcat(_("there is an error on device "), device, NULL); ( ) g _ s n p r i n t f () g _ s t r d u p _ p r i n t f ( ) gchar* message = g_strdup_printf(_("there is an error on device %s"), d e v i c e ); % s

20 2 G t k + / G n o m e 27 printf(_("there %s %d dog%s\n"), n_dogs > 1? _("were") : _("was"), n_dogs, n_dogs > 1? _("s") : ""); p r i n t f () if (n_dogs > 0) printf(_("there were %d dogs\n"), n_dogs); else printf(_("there was 1 dog\n")); ( ) static const char* ndogs_phrases[] = N_("There were no dogs.\n"), N_("There was one dog.\n"), N_("There were two dogs.\n"), N_("There were three dogs.\n") ; C s t r f t i m e () s t r c o l l () G l i b G D a t e s t r f t i m e () p r i n t f () s c a n f ( ) 2.8 Gnome API l i b g n o m e / G n o m e ~ /. g n o m e ~ /. g n o m e _ p r i v a t e l i b g n o m g n o m e - c o n f i g g n o m e - c o n f i g g n o m e - c o n f i g G n o m e g n o m e - c o n f i g ~ /. g n o m e ~ /. g n o m e _ p r i v a t e /

21 28 Linux GUI G n o m e / f i l e n a m e / s e c t i o n / k e y G n o m e = (. d e s k t o p G n o m e ) X M L ( g n o m e - x m l ) X M L l i b g n o m e g n o m e - c o n f i g W I N E Wi n d o w s GNU Midnight Commander G n o m e G n o m e g n o m e - c o n f i g L D A P ( ) ( gnome-config API gboolean show_dialog; show_dialog = gnome_config_get_bool("/myapp/general/dialog"); 0 FA L S E N U L L g _ f r e e () ( g _ s t r f r e e v () = v a l u e gboolean show_dialog; show_dialog = gnome_config_get_bool("/myapp/general/dialog=true"); w i t h _ d e f a u l t gboolean show_dialog; gboolean used_default; show_dialog = gnome_config_get_bool_with_default("/myapp/general/dialog=true", &used_default); if (used_default) printf("default value used for show_dialog\n"); g n o m e _ c o n f i g _ p u s h _ p r e f i x ( ) g n o m e _ c o n f i g _ p o p _ p r e f i x ( ) gboolean show_dialog; g n o m e _ c o n f i g _ p u s h _ p r e f i x ("/ m y a p p / G e n e r a l /"); show_dialog = gnome_config_get_bool("dialog=true"); g n o m e _ c o n f i g _ p o p _ p r e f i x (); p r i v a t e. g n o m e _ p r i v a t e t r a n s l a t e d _ s t r i n g

22 2 G t k + / G n o m e 29 G n o m e. d e s k t o p #include <libgnome/gnome-config.h> gchar* gnome_config_get_string(const gchar* path) gchar* gnome_config_get_translated_string(const gchar* path) gint gnome_config_get_int(const gchar* path) gdouble gnome_config_get_float(const gchar* path) gboolean gnome_config_get_bool(const gchar* path) void gnome_config_get_vector(const gchar* path, gint* argcp, gchar*** argvp) gchar* gnome_config_private_get_string(const gchar* path) gchar* gnome_config_private_get_translated_string(const gchar* path) gint gnome_config_private_get_int(const gchar* path) gdouble gnome_config_private_get_float(const gchar* path) gboolean gnome_config_private_get_bool(const gchar* path) void gnome_config_private_get_vector(const gchar* path, gint* argcp, gchar*** argvp) gchar* gnome_config_get_string_with_default(const gchar* path, gboolean* was_default) gchar* gnome_config_get_translated_string_with_default(const gchar* path, gboolean* was_default) gint gnome_config_get_int_with_default(const gchar* path, gboolean* was_default) gdouble gnome_config_get_float_with_default(const gchar* path, gboolean* was_default) gboolean gnome_config_get_bool_with_default(const gchar* path, gboolean* was_default) void gnome_config_get_vector_with_default(const gchar* path, gint* argcp, gchar*** argvp, gboolean* was_default) gchar* gnome_config_private_get_string_with_default(const gchar* path, gboolean* was_default) gchar* gnome_config_private_get_translated_string_with_default(const gchar* p a t h, gboolean* was_default) gint gnome_config_private_get_int_with_default(const gchar* path, gboolean* was_default) gdouble gnome_config_private_get_float_with_default(const gchar* path, gboolean* was_default) gboolean gnome_config_private_get_bool_with_default(const gchar* path, gboolean* was_default) void gnome_config_private_get_vector_with_default(const gchar* path, gint* argcp,

23 30 Linux GUI gchar*** argvp, gboolean* was_default) / f i l e / s e c t i o n / k e y g n o m e _ c o n f i g _ s y n c () #include <libgnome/gnome-config.h> void gnome_config_set_string(const gchar* path, const gchar* value) void gnome_config_set_translated_string(const gchar* path, const gchar* value) void gnome_config_set_int(const gchar* path, gint value) void gnome_config_set_float(const gchar* path, gdouble value) void gnome_config_set_bool(const gchar* path, gboolean value) void gnome_config_set_vector(const gchar* path, gint argc, const gchar* const argv[]) void gnome_config_private_set_string(const gchar* path, const gchar* value) void gnome_config_private_set_translated_string(const gchar* path, const gchar* value) void gnome_config_private_set_int(const gchar* path, gint value) void gnome_config_private_set_float(const gchar* path, gdouble value) void gnome_config_private_set_bool(const gchar* path, gboolean value) void gnome_config_private_set_vector(const gchar* path, gint argc, const gchar* const argv[]) 2.8.3

24 2 G t k + / G n o m e 31 g n o m e _ c o n f i g _ i n i t _ i t e r a t o r () g n o m e _ c o n f i g _ i t e r a t o r _ n e x t () / g n o m e _ c o n f i g _ i t e r a t o r _ n e x t () / g _ f r e e () g n o m e _ c o n f i g _ i t e r a t o r _ n e x t ( ) g n o m e _ c o n f i g _ i t e r a t o r _ n e x t () N U L L / g n o m e - a p t g n o m e - a p t D e b i a n C + + g n o m e - a p t G A p t P k g Tree::Column Ty p e G A p t P k g Tr e e :: C o l u m n Ty p e E n d static void load_column_order(vector<gaptpkgtree::columntype> & columns) gpointer config_iterator; guint loaded = 0; config_iterator = gnome_config_init_iterator("/gnome-apt/columnorder"); if (config_iterator!= 0) gchar * col, * pos; c o l u m n s. r e s e r v e ( G A p t P k g T r e e :: C o l u m n T y p e E n d ); loaded = 0; while ((config_iterator = gnome_config_iterator_next(config_iterator, &col, &pos))) // shouldn t happen, but m I paranoid if (pos == 0 col == 0) if (pos) g_free(pos); if (col) g_free(col); c o n t i n u e ; GAptPkgTree::ColumnType ct = string_to_column(col); gint index = atoi(pos); g_free(pos); pos = 0; g_free(col); col = 0; // the user could mangle the config file to make this happen if (static_cast<guint>(index) >= columns.size())

25 32 Linux GUI c o n t i n u e ; columns[index] = ct; + + l o a d e d ; if (loaded!= static_cast<guint>(gaptpkgtree::columntypeend)) // Either there was no saved order, or something is busted - use // default order c o l u m n s. c l e a r (); int i = 0; while (i < GAptPkgTree::ColumnTypeEnd) c o l u m n s. p u s h _ b a c k ( s t a t i c _ c a s t < G A p t P k g T r e e :: C o l u m n T y p e > ( i )); + + i ; // Clean the section - otherwise an old entry could // remain forever and keep screwing us up in the future. g n o m e _ c o n f i g _ c l e a n _ s e c t i o n ("/ g n o m e - a p t / C o l u m n O r d e r "); g n o m e _ c o n f i g _ s y n c (); g_return_if_fail(columns.size() == s t a t i c _ c a s t < g u i n t > ( G A p t P k g T r e e :: C o l u m n T y p e E n d )); static void save_column_order(const vector<gaptpkgtree::columntype> & columns) g_return_if_fail(columns.size() == s t a t i c _ c a s t < g u i n t > ( G A p t P k g T r e e :: C o l u m n T y p e E n d )); int position = 0; vector<gaptpkgtree::columntype>::const_iterator i = columns.begin(); while (i!= columns.end()) gchar key[256]; g _ s n p r i n t f ( k e y, 255,"/ g n o m e - a p t / C o l u m n O r d e r /% s ", c o l u m n _ t o _ s t r i n g (* i )); gchar val[30]; g _ s n p r i n t f ( v a l, 29,"% d ", p o s i t i o n ); gnome_config_set_string(key, val); + + p o s i t i o n ; + + i ;

26 2 G t k + / G n o m e 33 g n o m e _ c o n f i g _ s y n c ( ) ; c o l u m n _ t o _ s t r i n g ( ) s t r i n g _ t o _ c o l u m n ( ) g n o m e _ c o n f i g _ s e t _ s t r i n g () g n o m e _ c o n f i g _ s e t _ i n t () g n o m e _ c o n f i g _ i t e r a t o r _ n e x t ( ) g n o m e _ c o n f i g _ s e t _ i n t () a t o i () ( ) A P I g n o m e _ c o n f i g _ s e t _ i n t () g n o m e _ c o n f i g _ i t e r a t o r _ n e x t () g n o m e _ c o n f i g _ g e t _ i n t ( a t o i () gnome-config g n o m e _ c o n f i g _ i n i t _ i t e r a t o r _ s e c t i o n s ( ) g n o m e _ c o n f i g _ i t e r a t o r _ n e x t () #include <libgnome/gnome-config.h> void* gnome_config_init_iterator(const gchar* path) void* gnome_config_private_init_iterator(const gchar* path) void* gnome_config_init_iterator_sections(const gchar* path) void* gnome_config_private_init_iterator_sections(const gchar* path) void* gnome_config_iterator_next(void* iterator_handle, gchar** key, gchar** value) g n o m e _ c o n f i g _ s y n c () g n o m e _ c o n f i g _ p u s h _ p r e f i x () g n o m e - c o n f i g g n o m e - c o n f i g g n o m e _ c o n f i g _ s y n c () g n o m e _ c o n f i g _ s y n c () g n o m e _ c o n f i g _ s y n c () g n o m e _ c o n f i g _ d r o p _ a l l () g n o m e - c o n f i g

27 34 Linux GUI g n o m e - c o n f i g ( ) #include <libgnome/gnome-config.h> gboolean gnome_config_has_section(const gchar* path) gboolean gnome_config_private_has_section(const gchar* path) void gnome_config_drop_all() void gnome_config_sync() void gnome_config_sync_file(const gchar* path) void gnome_config_private_sync_file(const gchar* path) void gnome_config_drop_file(const gchar* path) void gnome_config_private_drop_file(const gchar* path) void gnome_config_clean_file(const gchar* path) void gnome_config_private_clean_file(const gchar* path) void gnome_config_clean_section(const gchar* path) void gnome_config_private_clean_section(const gchar* path) void gnome_config_clean_key(const gchar* path) void gnome_config_private_clean_key(const gchar* path) gchar* gnome_config_get_real_path(const gchar* path) gchar* gnome_config_private_get_real_path(const gchar* path) void gnome_config_push_prefix(const gchar* path) void gnome_config_pop_prefix() 2.9 G n o m e g n o m e - s e s s i o n G n o m e X C D E ( ) K D E ( K ) G n o m e G n o m e ( ) K D E GnomeClient G n o m e X G n o m e C l i e n t G t k O b j e c t G n o m e C l i e n t G n o m e

28 2 G t k + / G n o m e 35 G n o m e C l i e n t s a v e _ y o u r s e l f d i e s a v e _ y o u r s e l f d i e s a v e _ y o u r s e l f d i e G n o m e H e l l o G n o m e H e l l o G n o m e C l i e n t client = gnome_master_client (); gtk_signal_connect (GTK_OBJECT (client), "save_yourself", GTK_SIGNAL_FUNC (save_session), argv[0]); gtk_signal_connect (GTK_OBJECT (client), "die", GTK_SIGNAL_FUNC (session_die), NULL); a rg v [ 0 ] s a v e _ y o u r s e l f G n o m e H e l l o d i e static void session_die(gnomeclient* client, gpointer client_data) gtk_main_quit (); s a v e _ y o u r s e l f static gint save_session (GnomeClient *client, gint phase, GnomeSaveStyle save_style, gint is_shutdown, GnomeInteractStyle interact_style, gint is_fast, gpointer client_data) gchar** argv; guint argc; /* allocate 0-filled, so it will be NULL-terminated */ argv = g_malloc0(sizeof(gchar*)*4); argc = 1; argv[0] = client_data; if (message) argv[1] = "--message"; argv[2] = message; argc = 3; gnome_client_set_clone_command (client, argc, argv); gnome_client_set_restart_command (client, argc, argv); return TRUE;

29 36 Linux GUI s a v e _ y o u r s e l f ( ) G n o m e H e l l o G n o m e H e l l o G n o m e C l i e n t gnome-config API 2.10 Gtk+ G t k + X g l i b G t k + g l i b G d k X ( g l i b G t k + ) g t k _ m a i n () g t k _ m a i n _ q u i t ( g t k _ m a i n () g t k _ m a i n () g t k _ m a i n _ q u i t ( g t k _ m a i n () g t k _ m a i n _ l e v e l () g t k _ m a i n ( 0 g t k _ m a i n () 1 g t k _ m a i n () X g t k _ m a i n () G t k + m a i n ( ) g n o m e _ d i a l o g _ r u n ( ) g t k _ m a i n () g t k _ m a i n _ i t e r a t i o n () g t k _ e v e n t s _ p e n d i n g () G t k + G t k + G t k + while (gtk_events_pending()) g t k _ m a i n _ i t e r a t i o n (); #include <gtk/gtkmain.h> void gtk_main() void gtk_main_quit() void gtk_main_iteration() gint gtk_events_pending() guint gtk_main_level() g t k _ m a i n _ q u i t ()

30 2 G t k + / G n o m e 37 g t k _ m a i n () G t k F u n c t i o n typedef gint (*GtkFunction) (gpointer data); g t k _ q u i t _ a d d ( ) g t k _ m a i n _ l e v e l ( ) T R U E FA L S E FA L S E g t k _ m a i n () g t k _ q u i t _ a d d () I D g t k _ q u i t _ r e m o v e () g t k _ q u i t _ r e m o v e _ b y _ d a t a () #include <gtk/gtkmain.h> guint gtk_quit_add(guint main_level, GtkFunction function, gpointer data) void gtk_quit_remove(guint quit_handler_id) void gtk_quit_remove_by_data(gpointer data) Timeout g t k _ m a i n G T K Ti m e o u t Ti m e o u Ti m e o u t #include <gtk/gtkmain.h> gint gtk_timeout_add( guint32 interval, GtkFunction function, gpointer data ); #include <gtk/gtkmain.h> void gtk_timeout_remove( gint tag ); t a g FA L S E 0 0 T R U E gint timeout_callback( gpointer data ); Ti m e o u t Ti m e r idle G t k + i d l e i d l e T R U E FA L S E

31 38 Linux GUI g t k _ i d l e _ r e m o v e ( ) i d l e A P I t i m e o u t A P I i d l e g t k _ i d l e _ r e m o v e () G t k + FA L S E i d l e i d l e ( ) G t k + GnomeCanvas FA L S E i d l e G t k + i d l e U N I X i d l e i d l e #include <gtk/gtkmain.h> guint gtk_idle_add(gtkfunction function, gpointer data) void gtk_idle_remove(guint idle_handler_id) void gtk_idle_remove_by_data(gpointer data) ( o p e n ( 2 ) s o c k e t ( 2 ) G d k U n i x ( ) / A P I g d k _ i n p u t _ a d d () q u i t t i m e o u t i d l e g d k _ i n p u t _ r e m o v e () G t k + G d k I n p u t C o n d i t i o n G D K _ I N P U T _ R E A D G D K _ I N P U T _ W R I T E G D K _ I N P U T _ E X C E P T I O N O R s e l e c t () U N I X t y p e d e f void (*GdkInputFunction) (gpointer data, gint source_fd, GdkInputCondition condition); ( ) #include <gdk/gdk.h>

32 2 G t k + / G n o m e 39 gint gdk_input_add(gint source_fd, GdkInputCondition condition, GdkInputFunction function, gpointer data) void gdk_input_remove(gint tag) 2.11 G t k + / G n o m e a u t o m a k e a u t o c o n f l i b t o o l G N U I N S TA L L R E A D M E G n o m e G N U a u t o m a k e a u t o c o n f l i b t o o l G t k + G n o m e a u t o c o n f G n o m e H e l l o G n o m e G n o m e t a r G N U (GNU Project s Coding Standards h t t p : / / w w w. g n u. o rg / p r e p / s t a n d a r d s _ t o c. h t m l ) L i n u x (Linux Filesystem Hierarchy Standard h t t p : / / w w w. p a t h n a m e. c o m / f h s / ) G N U a u t o m a k e a u t o c o n f G N U Wi n d o w s M a c O S ( Wi n d o w s C y g n u C y g w i n h t t p : / / s o u r c e w a r e. c y g n u s. c o m / c y g w i n ) a u t o c o n f a u t o m a k e s h e l l M a k e f i l e A u t o c o n f a c l o c a l a u t o h e a d e r a u t o c o n f s h e l l c o n f i g u r e c o n f i g u r e M a k e f i l e c o n f i g. h c o n f i g u r e c o n f i g u r e M a k e f i l e. i n M a k e f i l e a u t o m a k e M a k e f i l e. a m M a k e f i l e. i n M a k e f i l e. i n c o n f i g u r e M a k e f i l L i b t o o l G N U G n o m e R E A D M E

33 40 Linux GUI I N S TA L L c o n f i g u r e ( ) c o n f i g u r e -- p r e f i x m a k e c l e a n C O P Y I N G C h a n g e L o g g z i p ( f o o t a r. g z ) f o o GNU gettext g e t t e x t g e t t e x t G t k + / G n o m e 1) 2) s r c 3) A U T H O R S N E W S C O P Y I N G R E A D M E C h a n g e L o g 4) c o n f i g u r e. i n c o n f i g u r e. i n c o n f i g u r e. i n # d e f i n e c o n f i g. h 5) a c c o n f i g. h c o n f i g. h. i n c o n f i g. h c o n f i g. # d e f i n e # u n d e f a u t o h e a d e r a c c o n f i g. h c o n f i g. h. i n a u t o c o n f c o n f i g. h a u t o h e a d e r a u t o c o n f 6) s t a m p. h. i n c o n f i g u r e. i n A M _ C O N F I G _ H E A D E R 7) M a k e f i l e. a m M a k e f i l e. a m 8) g e t t e x t g e t t e x t i z e i n t l p o i n t l GNU gettext g e t t e x t c o n f i g u r e -- w i t h - i n c l u d e d - g e t t e x t c o n f i g u r e i n t l g e t t e x t p o g e t t e x t i z e p o / M a k e f i l e. i n. i n 9) p o / P O T F I L E S. i n P O T F I L E S. i n 10) G n o m e a u t o g e n. s h a u t o g e n. s h a u t o g e n. s h l i b t o o l i z e a c l o c a l a u t o h e a d e r a u t o m a k e a u t o c o n f 11) autogen.sh - - a d d - m i s s i n g a u t o m a k e I N S TA L L I N S TA L L

34 2 G t k + / G n o m e 41 a u t o g e n. s h M a k e f i l e configure.in a u t o c o n f c o n f i g u r e. i n c o n f i g u r e c o n f i g u r e s h e l l M a k e f i l e / c o n f i g. h c o n f i g u r e a u t o c o n f a u t o c o n f c o n f i g u r e. i n m 4 s h e l l s h e l l c o n f i g u r e. i n m 4 Bourne shell c o n f i g u r e. i n autoconf a u t o c o n f G t k + G n o m e G t k + G n o m e c o n f i g u r e. i n G n o m e Hello, Wo r l d A C _ I N I T ( s r c / h e l l o. c ) A M _ C O N F I G _ H E A D E R ( c o n f i g. h ) AM_INIT_AUTOMAKE(GnomeHello, 0.1) A M _ M A I N T A I N E R _ M O D E A M _ A C L O C A L _ I N C L U D E ( m a c r o s ) G N O M E _ I N I T A C _ P R O G _ C C A C _ I S C _ P O S I X A C _ H E A D E R _ S T D C A C _ A R G _ P R O G R A M A M _ P R O G _ L I B T O O L G N O M E _ C O M P I L E _ W A R N I N G S ALL_LINGUAS="de es fr no ru sv fi" A M _ G N U _ G E T T E X T A C _ S U B S T ( C F L A G S ) A C _ S U B S T ( C P P F L A G S ) A C _ S U B S T ( L D F L A G S ) A C _ O U T P U T ([ M a k e f i l e m a c r o s / M a k e f i l e s r c / M a k e f i l e i n t l / M a k e f i l e p o / M a k e f i l e. i n p i x m a p s / M a k e f i l e d o c / M a k e f i l e d o c / C / M a k e f i l e d o c / e s / M a k e f i l e ]) A C a u t o c o n f A M a u t o m a k e a u t o c o n f

35 42 Linux GUI a u t o m a k e G N O M E G n o m e m a c r o s m 4 a u t o c o n f a u t o m a k e / u s r a u t o c o n f a u t o m a k e / u s r / s h a r e / a c l o c a l A C _ I N I T c o n f i g u r e. i n c o n f i g u r e c o n f i g u r e c o n f i g u r e A M _ C O N F I G _ H E A D E R c o n f i g. h c o n f i g u r e C PA C K A G E V E R S I O N ( config.h(#include <config.h>) c o n f i g. h ) A M _ I N I T _ A U TO M A K E a u t o m a k e ( c o n f i g. h PA C K A G E V E R S I O N ) A M _ M A I N TA I N E R _ M O D E m a k e f i l e c o n f i g u r e -- e n a b l e - m a i n t a i n e r- m o d e -- e n a b l e - m a i n t a i n e r- m o d e m a i n t a i n e r- o n l y m a k e f i l e c o n f i g u r e autoconf a u t o m a k a u t o g e n. s h a u t o g e n. s h -- e n a b l e - m a i n t a i n e r- m o d e c o n f i g u r e A M _ A C L O C A L _ I N C L U D E m 4 m a c r o s G n o m e G N O M E _ I N I T c o n f i g u r e G n o m e G n o m m a k e f i l e g n o m e - c o n f i g g n o m e - l i b s g n o m e - c o n f i g A C _ P R O G _ C C C AC_ISC_POSIX P O S I X A C _ H E A D E R _ S T D C A N S I S T D C _ H E A D E R S A C _ A R G _ P R O G R A M c o n f i g u r e ( ) A M _ P R O G _ L I B TO O L a u t o m a k e l i b t o o l G N O M E _ C O M P I L E _ WA R N I N G S g c c A L L _ L I N G U A S = e s s h e l l p o. p. p o A L L _ L I N G U A S A M _ G N U _ G E T T E X T a u t o m a k e g e t t e x t

36 2 G t k + / G n o m e 43 a u t o m a k e A C _ S U B S T c o n f i g u r e A C _ O U T P U T c o n f i g u r e. i n s r c / M a k e f i l e s r c / M a k e f i l e. i n c o n f i g. h c o n f i g. h. i n A C _ O U T P U T c o n f i g u r PA C K A G A C _ S U B S T ( A C _ S U B S T ) M a k e f i l e. i n M a k e f i l e M a k e f i l e. i n a u t o m a k e M a k e f i l e. a m ( a u t o c o n f a u t o m a k e M a k e f i l e. i n ) Makefile.am a u t o m a k e M a k e f i l e. a m M a k e f i l e. i n a u t o m a k e i n s t a l l c l e a n M a k e f i l e. a m make dist. t a r. g z M a k e f i l e. a m M a k e f i l e. a m a u t o m a k e M a k e f i l e. a m M a k e f i l e. i n M a k e f i l e. a m SUBDIRS = macros po intl src pixmaps doc EXTRA_DIST = \ g n o m e - h e l l o. d e s k t o p Applicationsdir = $(datadir)/gnome/apps/applications Applications_DATA = gnome-hello.desktop a u t o m a k e M a k e f i l e. a m s r c M a k e f i l e. a m INCLUDES = -I$(top_srcdir) -I$(includedir) $(GNOME_INCLUDEDIR) \ - D G _ L O G _ D O M A I N = \" G n o m e H e l l o \" -DGNOMELOCALEDIR=\""$(datadir)/locale"\" \ -I../intl -I$(top_srcdir)/intl bin_programs = gnome-hello gnome_hello_sources = \ app.c \ hello.c \ m e n u s. c \ a p p. h \ h e l l o. h \ m e n u s. h gnome_hello_ldadd = $(GNOMEUI_LIBS) $(GNOME_LIBDIR) $(INTLLIBS) a u t o m a k e M a k e f i l e. i n I N C L U D E S ( ) C c o n f i g u r e. i n

37 44 Linux GUI bin_programs h e l l o _ S O U R C E S h e l l o b i n _ P R O G R A M S h e l l o _ L D A D D c o n f i g u r e G n o m e I N C L U D E S G n o m e G _ L O G _ D O M A I N ( ) G N O M E L O C A L E D I R i n t l i n t M a k e f i l e. a c o n f i g u r e c o n f i g u r M a k e f i l e a u t o m a k e 2-1 a u t o m a k e m a k e m a k a l l G N U ( h t t p :// w w w. g n u. o rg / p r e p / s t a n d a r d s _ t o c. h t m l ) m a k e GNU Makefile 2-1 make m a k e D i s t D i s t c h e c k C l e a n I n s t a l l U n i n s t a l l D i s t c l e a n M o s t l y c l e a n M a i n t a i n e r- c l e a n TA G S C h e c k t a r (. t a r. g z ) ( ) ( ) c o n f i g u r e m a k e t a r c l e a n c l e a n t a g E m a c s G n o m e G n o m p i x m a p 1. p i x m a p p i x m a p a u t o m a k e (1) pixmap

38 2 G t k + / G n o m e 45 M a k e f i l e. a m (pixmap ) EXTRA_DIST = gnome-hello-logo.png pixmapdir = $(datadir)/pixmaps pixmap_data = gnome-hello-logo.png f i l l p i x m a p p i x m a p _ D ATA p i x m a p d i r a u t o m a k e _ D ATA M a k e f i l e. i n M a k e f i l e. a m g n o m e - h e l l o - l o g o. p n g $ ( d a t a d i r )/ p i x m a p s $ ( d a t a d i r ) c o n f i g u r e $ ( d a t a d i r ) /usr/local/share ( $ ( p r e f i x )/ s h a r e ) ( ) G n o m e p i x m a p $ ( d a t a d i r )/ p i x m a p s G n o m e p i x m a p P N G g d k _ i m l i b ( G n o m e ) (2) G n o m e D o c B o o k D o c B o o k SGML DTD (Document Type Definition ) H T M L D o c B o o k DocBook P o s t S c r i p t H T M L H T M L We b G n o m e G n o m e t o p i c. d a t U R L gnome-hello.html advanced.html GnomeHello manual Advanced Topics U R L ( C ) e s ( ) G n o m e G n o m e H e l l o d o c / M a k e f i l e. a m C / M a k e f i l e. a m g n o m e - h e l l o. s g m l t o p i c. d a t e s / M a k e f i l e. a m g n o m e - h e l l o. s g m l t o p i c. d a t d o c / C / M a k e f i l e. a m gnome_hello_helpdir = $(datadir)/gnome/help/gnome-hello/c

39 46 Linux GUI gnome_hello_help_data = \ gnome-hello.html \ t o p i c. d a t SGML_FILES = \ g n o m e - h e l l o. s g m l # files that aren t in a binary/data/library target have to be listed here # to be included in the tarball when make you dist EXTRA_DIST = \ topic.dat \ $ ( S G M L _ F I L E S ) ## The - before the command means to ignore it if it fails. That way ## people can still build the software without the docbook tools all: gnome-hello.html: gnome-hello/gnome-hello.html -cp gnome-hello/gnome-hello.html. gnome-hello/gnome-hello.html: $(SGML_FILES) -db2html gnome-hello.sgml ## when we make dist, we include the generated HTML so people t don ## have to have the docbook tools d i s t - h o o k : mkdir $(distdir)/gnome-hello -cp gnome-hello/*.html gnome-hello/*.css $(distdir)/gnome-hello -cp gnome-hello.html $(distdir) install-data-local: gnome-hello.html $(mkinstalldirs) $(gnome_hello_helpdir)/images -for file in $(srcdir)/gnome-hello/*.html $(srcdir)/gnome-hello/*.css; do \ basefile=`basename $$file`; \ $(INSTALL_DATA) $(srcdir)/$$file $(gnome_hello_helpdir)/$$basefile; \ d o n e gnome-hello.ps: gnome-hello.sgml -db2ps $< gnome-hello.rtf: gnome-hello.sgml -db2rtf $< H T M L $ ( d a t a d i r )/ g n o m e / h e l p / g n o m e - h e l l o / C G n o m e $ ( d a t a d i r )/ g n o m e / h e l p 2..desktop G n o m e. d e s k t o p d e s k t o p G n o m e. d e s k t o p G n o m e g n o m e - h e l l o. d e s k t o p [Desktop Entry] Name=Gnome Hello Name[es]=Gnome Hola N a m e [ f i ] = G N O M E - h e i Name[no]=Gnome hallo Name[sv]=Gnome Hej Comment=Hello World Comment[es]=Hola Mundo

40 2 G t k + / G n o m e 47 Comment[fi]=Hei, maailma Comment[sv]=Hej Världen Comment[no]=Hallo verden E x e c = g n o m e - h e l l o I c o n = g n o m e - h e l l o - l o g o. p n g T e r m i n a l = 0 T y p e = A p p l i c a t i o n N a m e X C o m m e n t E x e c Te r m i n a l 0 Ty p e A p p l i c a t i o n. d e s k t o p G n o m e H e l l o M a k e f i l e. a m SUBDIRS = macros po intl src pixmaps doc EXTRA_DIST = \ g n o m e - h e l l o. d e s k t o p Applicationsdir = $(datadir)/gnome/apps/applications Applications_DATA = gnome-hello.desktop $ ( d a t a d i r )/ g n o m e / a p p s / G n o m e H e l l o A p p l i c a t i o n s G a m e s G r a p h i c s I n t e r n e t M a k e f i l e. a m E X T R A _ D I S T ( t a r ) a u t o m a k e. d e s k t o p S G M L E X T R A _ D I S T EXTRA_DIST make distcheck

ebook 86-15

ebook 86-15 15 G t k + d e l e t e _ e v e n t G n o m e G n o m e 15.1 GnomeDialog G t k + G n o m e D i a l o g 15.1.1 G n o m e D i a l o g g n o m e _ d i a l o g _ n e w ( ) G N O M E _ D I A L O G ( d i a l

More information

ebook 86-10

ebook 86-10 10 GtkContainer 10.1 GtkEventBox G T K X G t k E v e n t B o x G t k E v e n t B o x X G T K X X GtkWidget *gtk_event_box_new( void ); G t k E v e n t B o x gtk_container_add( GTK_CONTAINER(event_box),

More information

ebook140-9

ebook140-9 9 VPN VPN Novell BorderManager Windows NT PPTP V P N L A V P N V N P I n t e r n e t V P N 9.1 V P N Windows 98 Windows PPTP VPN Novell BorderManager T M I P s e c Wi n d o w s I n t e r n e t I S P I

More information

ebook 86-9

ebook 86-9 9 9.1 GtkLabel G t k L a b e l ( G T K X GtkWidget *gtk_label_new(char *str ); void gtk_label_set_text( GtkLabel *lacbel,char *str ); ( G T K _ L A B E L () ) void gtk_label_get( GtkLabel *Label,char **str

More information

ebook8-30

ebook8-30 3 0 C C C C C C++ C + + C++ GNU C/C++ GNU egcs UNIX shell s h e l l g a w k P e r l U N I X I / O UNIX shell awk P e r l U N I X C C C C C C U N I X 30.1 C C U N I X 70 C C U N I X U N I X U N I X C Dennis

More information

ebook140-8

ebook140-8 8 Microsoft VPN Windows NT 4 V P N Windows 98 Client 7 Vintage Air V P N 7 Wi n d o w s NT V P N 7 VPN ( ) 7 Novell NetWare VPN 8.1 PPTP NT4 VPN Q 154091 M i c r o s o f t Windows NT RAS [ ] Windows NT4

More information

华恒家庭网关方案

华恒家庭网关方案 LINUX V1.5 1 2 1 2 LINUX WINDOWS PC VC LINUX WINDOWS LINUX 90% GUI LINUX C 3 REDHAT 9 LINUX PC TFTP/NFS http://www.hhcn.com/chinese/embedlinux-res.html minicom NFS mount C HHARM9-EDU 1 LINUX HHARM9-EDU

More information

mvc

mvc Build an application Tutor : Michael Pan Application Source codes - - Frameworks Xib files - - Resources - ( ) info.plist - UIKit Framework UIApplication Event status bar, icon... delegation [UIApplication

More information

epub83-1

epub83-1 C++Builder 1 C + + B u i l d e r C + + B u i l d e r C + + B u i l d e r C + + B u i l d e r 1.1 1.1.1 1-1 1. 1-1 1 2. 1-1 2 A c c e s s P a r a d o x Visual FoxPro 3. / C / S 2 C + + B u i l d e r / C

More information

Microsoft Word - 在Windows下以GTK撰寫視窗程式_0.01.doc

Microsoft Word - 在Windows下以GTK撰寫視窗程式_0.01.doc 在 Windows 下以 GTK+ 撰寫視窗程式 作者 : 徐天送 陳孟哲 email:s2598003@ntut.edu.tw 網址 :http://www.ntut.edu.tw/~s2598003/ 日期 :2004/11/2(0.01 版 ) 前言 在 Win32 平台下, 若是要開發視窗程式, 並且使撰寫出來的程式能夠在 Linux 下也能編譯並執行, 除了 Qt 之外, 我們還可以有另一個選擇,

More information

C 1

C 1 C homepage: xpzhangme 2018 5 30 C 1 C min(x, y) double C // min c # include # include double min ( double x, double y); int main ( int argc, char * argv []) { double x, y; if( argc!=

More information

RunPC2_.doc

RunPC2_.doc PowerBuilder 8 (5) PowerBuilder Client/Server Jaguar Server Jaguar Server Connection Cache Thin Client Internet Connection Pooling EAServer Connection Cache Connection Cache Connection Cache Connection

More information

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc References (Section 5.2) Hsuan-Tien Lin Deptartment of CSIE, NTU OOP Class, March 15-16, 2010 H.-T. Lin (NTU CSIE) References OOP 03/15-16/2010 0 / 22 Fun Time (1) What happens in memory? 1 i n t i ; 2

More information

1.ai

1.ai HDMI camera ARTRAY CO,. LTD Introduction Thank you for purchasing the ARTCAM HDMI camera series. This manual shows the direction how to use the viewer software. Please refer other instructions or contact

More information

ebook71-13

ebook71-13 13 I S P Internet 13. 2. 1 k p p p P P P 13. 2. 2 1 3. 2. 3 k p p p 1 3. 2. 4 l i n u x c o n f P P P 13. 2. 5 p p p s e t u p 13. 2. 6 p p p s e t u p P P P 13. 2. 7 1 3. 2. 8 C a l d e r a G U I 13.

More information

1 LINUX IDE Emacs gcc gdb Emacs + gcc + gdb IDE Emacs IDE C Emacs Emacs IDE ICE Integrated Computing Environment Emacs Unix Linux Emacs Emacs Emacs Un

1 LINUX IDE Emacs gcc gdb Emacs + gcc + gdb IDE Emacs IDE C Emacs Emacs IDE ICE Integrated Computing Environment Emacs Unix Linux Emacs Emacs Emacs Un Linux C July 27, 2016 Contents 1 Linux IDE 1 2 GCC 3 2.1 hello.c hello.exe........................... 5 2.2............................... 9 2.2.1 -Wall................................ 9 2.2.2 -E..................................

More information

ebook70-5

ebook70-5 5 / 5.1 L i n u x L i n u x X L i n u x 5.1.1 touch t o u c h t o u c h G N U t o u c h # touch newfile # ls -l newfile - r w - r - - r - - 1 bball users 0 Jan 5 12 : 40 n e w f i l e t o u c h 0 # > newfile2

More information

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File 51 C 51 51 C C C C C C * 2003-3-30 pnzwzw@163.com C C C C KEIL uvision2 MCS51 PLM C VC++ 51 KEIL51 KEIL51 KEIL51 KEIL 2K DEMO C KEIL KEIL51 P 1 1 1 1-1 - 1 Project New Project 1 2 Windows 1 3 N C test

More information

05 01 X Window X Window Linux Linux X Window X Window Webmin Web Linux Linux X Window X Window Notebook PC X Window X Window module Linux Linux kernel

05 01 X Window X Window Linux Linux X Window X Window Webmin Web Linux Linux X Window X Window Notebook PC X Window X Window module Linux Linux kernel Linux sub bash test2.sh sub bash test.sh test2.sh sub bash var1 123 123 test.sh test2.sh var1 bash sub bash var1 bash 01 5-4 X Window X Window X Window Linux Server X Window CPU2006 Linux X Window benchmark

More information

Bus Hound 5

Bus Hound 5 Bus Hound 5.0 ( 1.0) 21IC 2007 7 BusHound perisoft PC hound Bus Hound 6.0 5.0 5.0 Bus Hound, IDE SCSI USB 1394 DVD Windows9X,WindowsMe,NT4.0,2000,2003,XP XP IRP Html ZIP SCSI sense USB Bus Hound 1 Bus

More information

FY.DOC

FY.DOC 高 职 高 专 21 世 纪 规 划 教 材 C++ 程 序 设 计 邓 振 杰 主 编 贾 振 华 孟 庆 敏 副 主 编 人 民 邮 电 出 版 社 内 容 提 要 本 书 系 统 地 介 绍 C++ 语 言 的 基 本 概 念 基 本 语 法 和 编 程 方 法, 深 入 浅 出 地 讲 述 C++ 语 言 面 向 对 象 的 重 要 特 征 : 类 和 对 象 抽 象 封 装 继 承 等 主

More information

epub 61-2

epub 61-2 2 Web Dreamweaver UltraDev Dreamweaver 3 We b We b We Dreamweaver UltraDev We b Dreamweaver UltraDev We b We b 2.1 Web We b We b D r e a m w e a v e r J a v a S c r i p t We b We b 2.1.1 Web We b C C +

More information

概述

概述 OPC Version 1.6 build 0910 KOSRDK Knight OPC Server Rapid Development Toolkits Knight Workgroup, eehoo Technology 2002-9 OPC 1...4 2 API...5 2.1...5 2.2...5 2.2.1 KOS_Init...5 2.2.2 KOS_InitB...5 2.2.3

More information

Microsoft Word - linux命令及建议.doc

Microsoft Word - linux命令及建议.doc Linux 操 作 系 统 命 令 集 1 基 本 命 令 查 看 系 统 信 息 : uname -a 修 改 密 码 : passwd 退 出 : logout(exit) 获 取 帮 助 : man commands 2 文 件 和 目 录 命 令 显 示 当 前 工 作 目 录 : pwd 改 变 所 在 目 录 : cd cd - 切 换 到 上 一 次 使 用 的 目 录 cd 切 换

More information

EK-STM32F

EK-STM32F STMEVKIT-STM32F10xx8 软 件 开 发 入 门 指 南 目 录 1 EWARM 安 装... 1 1.1 第 一 步 : 在 线 注 册... 1 1.2 第 二 步 : 下 载 软 件... 2 1.3 第 三 步 : 安 装 EWARM... 3 2 基 于 STMEVKIT-STM32F10xx8 的 示 例 代 码 运 行... 6 2.1 GPIO Demo... 6 2.2

More information

提问袁小兵:

提问袁小兵: C++ 面 试 试 题 汇 总 柯 贤 富 管 理 软 件 需 求 分 析 篇 1. STL 类 模 板 标 准 库 中 容 器 和 算 法 这 部 分 一 般 称 为 标 准 模 板 库 2. 为 什 么 定 义 虚 的 析 构 函 数? 避 免 内 存 问 题, 当 你 可 能 通 过 基 类 指 针 删 除 派 生 类 对 象 时 必 须 保 证 基 类 析 构 函 数 为 虚 函 数 3.

More information

Windows XP

Windows XP Windows XP What is Windows XP Windows is an Operating System An Operating System is the program that controls the hardware of your computer, and gives you an interface that allows you and other programs

More information

untitled

untitled A, 3+A printf( ABCDEF ) 3+ printf( ABCDEF ) 2.1 C++ main main main) * ( ) ( ) [ ].* ->* ()[] [][] ** *& char (f)(int); ( ) (f) (f) f (int) f int char f char f(int) (f) char (*f)(int); (*f) (int) (

More information

Microsoft Word - 01.DOC

Microsoft Word - 01.DOC 第 1 章 JavaScript 简 介 JavaScript 是 NetScape 公 司 为 Navigator 浏 览 器 开 发 的, 是 写 在 HTML 文 件 中 的 一 种 脚 本 语 言, 能 实 现 网 页 内 容 的 交 互 显 示 当 用 户 在 客 户 端 显 示 该 网 页 时, 浏 览 器 就 会 执 行 JavaScript 程 序, 用 户 通 过 交 互 式 的

More information

ebook71-6

ebook71-6 6 X C a l d e r a X 6. 2. 1 C a l d e r a 6. 2. 2 C a l d e r a 6. 2. 3 C a l d e r a 6. 2. 4 C a l d e r a 6. 2. 5 C a l d e r a 6. 2. 6 C a l d e r a X 6. 2. 7 Red Hat X 6. 2. 8 Red Hat 6. 2. 9 Red Hat

More information

ebook

ebook 3 3 3.1 3.1.1 ( ) 90 3 1966 B e r n s t e i n P ( i ) R ( i ) W ( i P ( i P ( j ) 1) R( i) W( j)=φ 2) W( i) R( j)=φ 3) W( i) W( j)=φ 3.1.2 ( p r o c e s s ) 91 Wi n d o w s Process Control Bl o c k P C

More information

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc 2 5 8 11 0 13 1. 13 2. 15 3. 18 1 23 1. 23 2. 26 3. 28 2 36 1. 36 2. 39 3. 42 4. 44 5. 49 6. 51 3 57 1. 57 2. 60 3. 64 4. 66 5. 70 6. 75 7. 83 8. 85 9. 88 10. 98 11. 103 12. 108 13. 112 4 115 1. 115 2.

More information

Oracle Oracle Solaris Studio IDE makefile C C++ Fortran makefile IDE Solaris Linux C/C++/Fortran Oracle IDE "P

Oracle Oracle Solaris Studio IDE makefile C C++ Fortran makefile IDE Solaris Linux C/C++/Fortran Oracle IDE P Oracle Solaris Studio 12.3 IDE 2011 12 E26461-01 2 7 8 9 9 Oracle 10 12 14 21 26 27 29 31 32 33 Oracle Solaris Studio IDE makefile C C++ Fortran makefile IDE Solaris Linux C/C++/Fortran Oracle IDE "Project

More information

Important Notice SUNPLUS TECHNOLOGY CO. reserves the right to change this documentation without prior notice. Information provided by SUNPLUS TECHNOLO

Important Notice SUNPLUS TECHNOLOGY CO. reserves the right to change this documentation without prior notice. Information provided by SUNPLUS TECHNOLO Car DVD New GUI IR Flow User Manual V0.1 Jan 25, 2008 19, Innovation First Road Science Park Hsin-Chu Taiwan 300 R.O.C. Tel: 886-3-578-6005 Fax: 886-3-578-4418 Web: www.sunplus.com Important Notice SUNPLUS

More information

Chn 116 Neh.d.01.nis

Chn 116 Neh.d.01.nis 31 尼 希 米 书 尼 希 米 的 祷 告 以 下 是 哈 迦 利 亚 的 儿 子 尼 希 米 所 1 说 的 话 亚 达 薛 西 王 朝 二 十 年 基 斯 流 月 *, 我 住 在 京 城 书 珊 城 里 2 我 的 兄 弟 哈 拿 尼 和 其 他 一 些 人 从 犹 大 来 到 书 珊 城 我 向 他 们 打 听 那 些 劫 后 幸 存 的 犹 太 人 家 族 和 耶 路 撒 冷 的 情 形

More information

ch_code_infoaccess

ch_code_infoaccess 地 產 代 理 監 管 局 公 開 資 料 守 則 2014 年 5 月 目 錄 引 言 第 1 部 段 數 適 用 範 圍 1.1-1.2 監 管 局 部 門 1.1 紀 律 研 訊 1.2 提 供 資 料 1.3-1.6 按 慣 例 公 布 或 供 查 閱 的 資 料 1.3-1.4 應 要 求 提 供 的 資 料 1.5 法 定 義 務 及 限 制 1.6 程 序 1.7-1.19 公 開 資

More information

BOOL EnumWindows(WNDENUMPROC lparam); lpenumfunc, LPARAM (Native Interface) PowerBuilder PowerBuilder PBNI 2

BOOL EnumWindows(WNDENUMPROC lparam); lpenumfunc, LPARAM (Native Interface) PowerBuilder PowerBuilder PBNI 2 PowerBuilder 9 PowerBuilder Native Interface(PBNI) PowerBuilder 9 PowerBuilder C++ Java PowerBuilder 9 PBNI PowerBuilder Java C++ PowerBuilder NVO / PowerBuilder C/C++ PowerBuilder 9.0 PowerBuilder Native

More information

Oracle Solaris Studio makefile C C++ Fortran IDE Solaris Linux C/C++/Fortran IDE "Project Properties" IDE makefile 1.

Oracle Solaris Studio makefile C C++ Fortran IDE Solaris Linux C/C++/Fortran IDE Project Properties IDE makefile 1. Oracle Solaris Studio 12.2 IDE 2010 9 2 8 9 10 11 13 20 26 28 30 32 33 Oracle Solaris Studio makefile C C++ Fortran IDE Solaris Linux C/C++/Fortran IDE "Project Properties" IDE makefile 1. "File" > "New

More information

51 C 51 isp 10 C PCB C C C C KEIL

51 C 51 isp 10   C   PCB C C C C KEIL http://wwwispdowncom 51 C " + + " 51 AT89S51 In-System-Programming ISP 10 io 244 CPLD ATMEL PIC CPLD/FPGA ARM9 ISP http://wwwispdowncom/showoneproductasp?productid=15 51 C C C C C ispdown http://wwwispdowncom

More information

ebook70-14

ebook70-14 Linux 1 4 1 5 1 6 1 7 1 8 1 9 S t a r O ff i c e 2 0 L i n u x 1 4 O p e n L i n u x O p e n L i n u x C D - R O M O p e n L i n u x C o r e l WordPerfect 8 for Linux S t a r D i v i s i o n S t a r O

More information

ebook140-11

ebook140-11 11 VPN Windows NT4 B o r d e r M a n a g e r VPN VPN V P N V P N V P V P N V P N TCP/IP 11.1 V P N V P N / ( ) 11.1.1 11 V P N 285 2 3 1. L A N LAN V P N 10MB 100MB L A N VPN V P N V P N Microsoft PPTP

More information

static struct file_operations gpio_ctl_fops={ ioctl: gpio_ctl_ioctl, open : gpio_open, release: gpio_release, ; #defineled1_on() (GPBDAT &= ~0x1) #def

static struct file_operations gpio_ctl_fops={ ioctl: gpio_ctl_ioctl, open : gpio_open, release: gpio_release, ; #defineled1_on() (GPBDAT &= ~0x1) #def Kaise s 2410 Board setting [1]. Device Driver Device Driver Linux s Kernel ARM s kernel s3c2410_kernel2.4.18_r1.1_change.tar.bz2 /usr/src (1) #cd /usr/src (2) #tar xfj s3c2410_kernel2.4.18_r1.1_change.tar.bz2

More information

untitled

untitled 1 Outline 數 料 數 數 列 亂數 練 數 數 數 來 數 數 來 數 料 利 料 來 數 A-Z a-z _ () 不 數 0-9 數 不 數 SCHOOL School school 數 讀 school_name schoolname 易 不 C# my name 7_eleven B&Q new C# (1) public protected private params override

More information

ebook 185-6

ebook 185-6 6 Red Hat Linux DB2 Universal Database 6.1 D B 2 Red Hat D B 2 Control Center D B 2 D B 2 D B 2 6.1 DB2 Universal Database [DB2]6.1 D B 2 O LT P O L A P D B 2 I B M P C We e k D B 2 D B 2 L i n u x Windows

More information

1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10

1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10 Java V1.0.1 2007 4 10 1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10 6.2.10 6.3..10 6.4 11 7.12 7.1

More information

ebook215-5

ebook215-5 5 X M L X M L Document Object Model D O M 5.1 We b We b We b W 3 C W3C DOM W3C DOM D O D O M D O M D O D O M H T M L X M L 5.1.1 XML X M L X M L 5-1 X M L 112 XML 5-2 P R O D U C T P l u t o n i u m L

More information

穨control.PDF

穨control.PDF TCP congestion control yhmiu Outline Congestion control algorithms Purpose of RFC2581 Purpose of RFC2582 TCP SS-DR 1998 TCP Extensions RFC1072 1988 SACK RFC2018 1996 FACK 1996 Rate-Halving 1997 OldTahoe

More information

BC04 Module_antenna__ doc

BC04 Module_antenna__ doc http://www.infobluetooth.com TEL:+86-23-68798999 Fax: +86-23-68889515 Page 1 of 10 http://www.infobluetooth.com TEL:+86-23-68798999 Fax: +86-23-68889515 Page 2 of 10 http://www.infobluetooth.com TEL:+86-23-68798999

More information

AL-M200 Series

AL-M200 Series NPD4754-00 TC ( ) Windows 7 1. [Start ( )] [Control Panel ()] [Network and Internet ( )] 2. [Network and Sharing Center ( )] 3. [Change adapter settings ( )] 4. 3 Windows XP 1. [Start ( )] [Control Panel

More information

ebook66-15

ebook66-15 1 5 Wi n d o w s 3 17 18 15.1 Vi r t u a l A l l o c p v A d d r e s s M U L L Vi r t u a l A l l o c M E M _ TO P _ D O W N 50 MB 52 428 800 5 0 1 024 1 024 p v A d d r e s s Vi r t u a l A l l o c N

More information

:5-6

:5-6 License Agreement for Bible Texts These Scriptures: May not be altered or modified in any form. They must remain in their original context. May not be sold or offered for sale in any form. May not be used

More information

内 容 提 要 将 JAVA 开 发 环 境 迁 移 到 Linux 系 统 上 是 现 在 很 多 公 司 的 现 实 想 法, 而 在 Linux 上 配 置 JAVA 开 发 环 境 是 步 入 Linux 下 JAVA 程 序 开 发 的 第 一 步, 本 文 图 文 并 茂 地 全 程 指

内 容 提 要 将 JAVA 开 发 环 境 迁 移 到 Linux 系 统 上 是 现 在 很 多 公 司 的 现 实 想 法, 而 在 Linux 上 配 置 JAVA 开 发 环 境 是 步 入 Linux 下 JAVA 程 序 开 发 的 第 一 步, 本 文 图 文 并 茂 地 全 程 指 内 容 提 要 将 JAVA 开 发 环 境 迁 移 到 Linux 系 统 上 是 现 在 很 多 公 司 的 现 实 想 法, 而 在 Linux 上 配 置 JAVA 开 发 环 境 是 步 入 Linux 下 JAVA 程 序 开 发 的 第 一 步, 本 文 图 文 并 茂 地 全 程 指 导 你 搭 建 Linux 平 台 下 的 JAVA 开 发 环 境, 包 括 JDK 以 及 集

More information

K301Q-D VRT中英文说明书141009

K301Q-D VRT中英文说明书141009 THE INSTALLING INSTRUCTION FOR CONCEALED TANK Important instuction:.. Please confirm the structure and shape before installing the toilet bowl. Meanwhile measure the exact size H between outfall and infall

More information

新版 明解C++入門編

新版 明解C++入門編 511!... 43, 85!=... 42 "... 118 " "... 337 " "... 8, 290 #... 71 #... 413 #define... 128, 236, 413 #endif... 412 #ifndef... 412 #if... 412 #include... 6, 337 #undef... 413 %... 23, 27 %=... 97 &... 243,

More information

第11章 可调内核参数

第11章 可调内核参数 11 11 Unix BSD 4.4 Linux sysctl Unix Linux /proc window /proc /proc/sys /proc/sys sysctl Unix root /proc/sys/vm root /proc/sys sysctl /proc/sys struct ctl_table 18274 struct ctl_tables /proc/sys struct

More information

Abstract arm linux tool-chain root NET-Start! 2

Abstract arm linux tool-chain root NET-Start! 2 Lab III - Embedding Linux 1 Abstract arm linux tool-chain root NET-Start! 2 Part 1.4 Step1. tool-chain 4 Step2. PATH 4 Part 2 kernel 5 Step1. 5 Step2... 6 Step3...8 Part 3 root. 8 Step1. 8 Step2. 8 Part

More information

ebook

ebook 26 JBuilder RMI Java Remote Method Invocation R M I J a v a - - J a v a J a v J a v a J a v a J a v a R M I R M I ( m a r s h a l ) ( u n m a r c h a l ) C a ff e i n e J a v a j a v a 2 i i o p J a v

More information

128 ( ) ( ) [ 1 ] [2] [3] (1) (2) (3) [1] [2] [3] 10 2 ( ) (1997.6) ( ) 64

128 ( ) ( ) [ 1 ] [2] [3] (1) (2) (3) [1] [2] [3] 10 2 ( ) (1997.6) ( ) 64 BIBLID 1026-5279 (2005) 94:2 p. 127-154 (2005.12) 127 Keywords Digital Library High School Library Library Website Open Source E-mail frank@hchs.hc.edu.tw 128 (2005.12) ( ) 6 0 68 [ 1 ] [2] [3] (1) (2)

More information

ebook

ebook 2 2 P D C S a m b a Windows NT P D C S a m b a ( 2. 0 ) Windows NT P D C ( S a m b a - n t d o m @ S a m b a. o rg ) U N I X P D C U N I X Samba PDC N I S i n t e l S p a r c S a m b a Windows NT PDC 21

More information

C6_ppt.PDF

C6_ppt.PDF C01-202 1 2 - (Masquerade) (Replay) (Message Modification) (Denial of Service) - ( ) (Eavesdropping) (Traffic Analysis) 8 1 2 7 3 6 5 4 3 - TCP SYN (SYN flood) Smurf Ping of Death LAND Attack Teardrop

More information

Microsoft Word - TIP006SCH Uni-edit Writing Tip - Presentperfecttenseandpasttenseinyourintroduction readytopublish

Microsoft Word - TIP006SCH Uni-edit Writing Tip - Presentperfecttenseandpasttenseinyourintroduction readytopublish 我 难 度 : 高 级 对 们 现 不 在 知 仍 道 有 听 影 过 响 多 少 那 次 么 : 研 英 究 过 文 论 去 写 文 时 作 的 表 技 引 示 巧 言 事 : 部 情 引 分 发 言 该 生 使 在 中 用 过 去, 而 现 在 完 成 时 仅 表 示 事 情 发 生 在 过 去, 并 的 哪 现 种 在 时 完 态 成 呢 时? 和 难 过 道 去 不 时 相 关? 是 所 有

More information

RUN_PC連載_10_.doc

RUN_PC連載_10_.doc PowerBuilder 8 (10) Jaguar CTS ASP Jaguar CTS PowerDynamo Jaguar CTS Microsoft ASP (Active Server Pages) ASP Jaguar CTS ASP Jaguar CTS ASP Jaguar CTS ASP Jaguar CTS ASP Jaguar CTS ASP Jaguar Server ASP

More information

Microsoft Word - template.doc

Microsoft Word - template.doc HGC efax Service User Guide I. Getting Started Page 1 II. Fax Forward Page 2 4 III. Web Viewing Page 5 7 IV. General Management Page 8 12 V. Help Desk Page 13 VI. Logout Page 13 Page 0 I. Getting Started

More information

Guide to Install SATA Hard Disks

Guide to Install SATA Hard Disks SATA RAID 1. SATA. 2 1.1 SATA. 2 1.2 SATA 2 2. RAID (RAID 0 / RAID 1 / JBOD).. 4 2.1 RAID. 4 2.2 RAID 5 2.3 RAID 0 6 2.4 RAID 1.. 10 2.5 JBOD.. 16 3. Windows 2000 / Windows XP 20 1. SATA 1.1 SATA Serial

More information

RUN_PC連載_8_.doc

RUN_PC連載_8_.doc PowerBuilder 8 (8) Web DataWindow ( ) DataWindow Web DataWindow Web DataWindow Web DataWindow PowerDynamo Web DataWindow / Web DataWindow Web DataWindow Wizard Web DataWindow Web DataWindow DataWindow

More information

CC213

CC213 : (Ken-Yi Lee), E-mail: feis.tw@gmail.com 49 [P.51] C/C++ [P.52] [P.53] [P.55] (int) [P.57] (float/double) [P.58] printf scanf [P.59] [P.61] ( / ) [P.62] (char) [P.65] : +-*/% [P.67] : = [P.68] : ,

More information

EJB-Programming-4-cn.doc

EJB-Programming-4-cn.doc EJB (4) : (Entity Bean Value Object ) JBuilder EJB 2.x CMP EJB Relationships JBuilder EJB Test Client EJB EJB Seminar CMP Entity Beans Session Bean J2EE Session Façade Design Pattern Session Bean Session

More information

untitled

untitled PowerBuilder Tips 利 PB11 Web Service 年度 2 PB Tips PB9 EAServer 5 web service PB9 EAServer 5 了 便 web service 來說 PB9 web service 力 9 PB11 release PB11 web service 力更 令.NET web service PB NVO 論 不 PB 來說 說

More information

开眼看世界

开眼看世界 感 想 1: 开 眼 看 世 界 二 〇 一 四 欧 洲 旅 行 感 悟 时 隔 一 年, 我 又 一 次 出 国 虽 只 隔 一 年, 我 却 是 怀 着 两 种 心 情 去 旅 行, 人 都 会 在 看 似 无 情 却 有 情 的 岁 月 里 成 长, 二 〇 一 四, 我 感 悟 颇 多 去 年 去 美 国, 我 还 是 一 个 少 不 更 事 的 顽 童, 但 今 年 去 欧 洲, 我 认

More information

參 加 第 二 次 pesta 的 我, 在 是 次 交 流 營 上 除 了, 與 兩 年 沒 有 見 面 的 朋 友 再 次 相 聚, 加 深 友 誼 外, 更 獲 得 與 上 屆 不 同 的 體 驗 和 經 歴 比 較 起 香 港 和 馬 來 西 亞 的 活 動 模 式, 確 是 有 不 同 特

參 加 第 二 次 pesta 的 我, 在 是 次 交 流 營 上 除 了, 與 兩 年 沒 有 見 面 的 朋 友 再 次 相 聚, 加 深 友 誼 外, 更 獲 得 與 上 屆 不 同 的 體 驗 和 經 歴 比 較 起 香 港 和 馬 來 西 亞 的 活 動 模 式, 確 是 有 不 同 特 WE ARE BOY S BRIGADE 參 加 第 二 次 pesta 的 我, 在 是 次 交 流 營 上 除 了, 與 兩 年 沒 有 見 面 的 朋 友 再 次 相 聚, 加 深 友 誼 外, 更 獲 得 與 上 屆 不 同 的 體 驗 和 經 歴 比 較 起 香 港 和 馬 來 西 亞 的 活 動 模 式, 確 是 有 不 同 特 別 之 處 如 控 制 時 間 及 人 流 方 面, 香

More information

ebook70-21

ebook70-21 2 1 2 2 2 3 2 4 2 1 s u O p e n L i n u x L i n u x s c h e d u l i n g L i n u x O p e n L i n u x O p e n L i n u x O p e n L i n u x 5 r m # rm -fr / * L i n u x r m Permission denied s u 21.1 su s

More information

IP505SM_manual_cn.doc

IP505SM_manual_cn.doc IP505SM 1 Introduction 1...4...4...4...5 LAN...5...5...6...6...7 LED...7...7 2...9...9...9 3...11...11...12...12...12...14...18 LAN...19 DHCP...20...21 4 PC...22...22 Windows...22 TCP/IP -...22 TCP/IP

More information

Microsoft Word - 11.doc

Microsoft Word - 11.doc 除 錯 技 巧 您 將 於 本 章 學 到 以 下 各 項 : 如 何 在 Visual C++ 2010 的 除 錯 工 具 控 制 下 執 行 程 式? 如 何 逐 步 地 執 行 程 式 的 敘 述? 如 何 監 看 或 改 變 程 式 中 的 變 數 值? 如 何 監 看 程 式 中 計 算 式 的 值? 何 謂 Call Stack? 何 謂 診 斷 器 (assertion)? 如 何

More information

untitled

untitled Ogre Rendering System http://antsam.blogone.net AntsamCGD@hotmail.com geometry systemmaterial systemshader systemrendering system API API DirectX OpenGL API Pipeline Abstraction API Pipeline Pipeline configurationpipeline

More information

ebook12-1

ebook12-1 API N e t B I O S Wi n s o c k A P I Wi n s o c k 1 N e t B I O S Wi n s o c k A P I N e t B I O S O S / 2 D O S 2 3 4 Wi n d o w s Wi n d o w s 1 NetBIOS Network Basic Input/Output System, NetBIOS A P

More information

Windows 2000 Server for T100

Windows 2000 Server for T100 T200 3020 Windows 2000 Advanced Server /Windows NT 4.0 Server /Redhat Linux7.3 SCO UnixWare7.1.1 Novell NetWare5.0 1. Windows 2000 Advanced Server / 2. Windows NT 4.0 Server / 3. Redhat Linux7.3 4. SCO

More information

27 :OPC 45 [4] (Automation Interface Standard), (Costom Interface Standard), OPC 2,,, VB Delphi OPC, OPC C++, OPC OPC OPC, [1] 1 OPC 1.1 OPC OPC(OLE f

27 :OPC 45 [4] (Automation Interface Standard), (Costom Interface Standard), OPC 2,,, VB Delphi OPC, OPC C++, OPC OPC OPC, [1] 1 OPC 1.1 OPC OPC(OLE f 27 1 Vol.27 No.1 CEMENTED CARBIDE 2010 2 Feb.2010!"!!!!"!!!!"!" doi:10.3969/j.issn.1003-7292.2010.01.011 OPC 1 1 2 1 (1., 412008; 2., 518052), OPC, WinCC VB,,, OPC ; ;VB ;WinCC Application of OPC Technology

More information

回 憶 見 證 盼 望 追 思 陳 英 泰 先 生 目 錄 04 陳 英 泰 先 生 生 平 簡 介 06 陳 英 泰 先 生 年 表 08 陳 英 泰 的 照 片 過 去 到 現 在 10 時 論 5 台 灣 人 權 景 美 文 化 園 區 -2 陳 英 泰 先 生 遺 作 13 家 屬 追 思

回 憶 見 證 盼 望 追 思 陳 英 泰 先 生 目 錄 04 陳 英 泰 先 生 生 平 簡 介 06 陳 英 泰 先 生 年 表 08 陳 英 泰 的 照 片 過 去 到 現 在 10 時 論 5 台 灣 人 權 景 美 文 化 園 區 -2 陳 英 泰 先 生 遺 作 13 家 屬 追 思 ( 曾 懷 慧 攝 影 ) 回 憶 見 證 盼 望 追 思 陳 英 泰 先 生 目 錄 04 陳 英 泰 先 生 生 平 簡 介 06 陳 英 泰 先 生 年 表 08 陳 英 泰 的 照 片 過 去 到 現 在 10 時 論 5 台 灣 人 權 景 美 文 化 園 區 -2 陳 英 泰 先 生 遺 作 13 家 屬 追 思 文 14 一 生 的 堅 持 給 天 父 的 一 封 信 陳 峋 蘋 17

More information

资源管理软件TORQUE与作业调度软件Maui的安装、设置及使用

资源管理软件TORQUE与作业调度软件Maui的安装、设置及使用 TORQUE Maui hmli@ustc.edu.cn 2008 1 1 TORQUE 2 1.1 TORQUE........................... 2 1.2 TORQUE...................... 2 1.3 TORQUE.......................... 4 1.4 TORQUE........................... 4

More information

SA-DK2-U3Rユーザーズマニュアル

SA-DK2-U3Rユーザーズマニュアル USB3.0 SA-DK2-U3R 2007.0 2 3 4 5 6 7 8 System Info. Manual Rebuild Delete RAID RAID Alarm Rebuild Rate Auto compare Temp Management Load Default Elapse time Event Log 0 2 3 4 2 3 4 ESC 5

More information

epub 79-1

epub 79-1 1 XML X M L X M L X M L We b 1.1 markup language M L M L A S C I I A S C I I C 0 0 0 1 F C R - L F M S - D O S M S - Wi n d o w s U n i x L F M a c O S C R A S C I I A S C I I -. - -. C C + + { }. b e

More information

ebook15-10

ebook15-10 1 0 10.1 U N I X V 7 4. 3 B S D S V R 3 P O S I X. 1 100 % 10.2 S I G S I G A B RT a b o r t S I G A L R M a l a r m V 7 1 5 S V R 4 4. 3 + B S D 31 < s i g n a l. h > 0 10. 9 k i l l 0 P O S I X. 1 D

More information

ebook35-2

ebook35-2 2 2.1 Linux login Login: < > Password: < > Linux r o o t l o g o u t 2.2 Linux X Window Linux Linux Bourne ( b s h ) C ( c s h ) Korn ( k s h ) Bourne Steven Bourne UNIX Bourne bash Bourne C Bill Joy Bourne

More information

Chapter 1 What is Programing Paradigm 1

Chapter 1 What is Programing Paradigm 1 An Introduction to Programing Paradigm Chase Zhang May 8, 2013 Chapter 1 What is Programing Paradigm 1 CHAPTER 1. WHAT IS PROGRAMING PARADIGM 2 Definition from Wikipedia 1. Object-oriented programming/

More information

- June 意 味 上 梁 不 正 下 梁 歪 地 动 辄 失 去 理 性 而 对 部 下 狂 吠 给 我 滚, 毛 也 曾 因 被 吵 醒 而 对 哨 兵 猛 吼 老 子 揍 你! 并 罚 站 254) 和 大 红 灯 笼 高 高 挂 成 叠 影 的 一 是 太 太 被 老 爷 惯 坏 而 任

- June 意 味 上 梁 不 正 下 梁 歪 地 动 辄 失 去 理 性 而 对 部 下 狂 吠 给 我 滚, 毛 也 曾 因 被 吵 醒 而 对 哨 兵 猛 吼 老 子 揍 你! 并 罚 站 254) 和 大 红 灯 笼 高 高 挂 成 叠 影 的 一 是 太 太 被 老 爷 惯 坏 而 任 从 称 谓 魔 杖 管 窥 中 国 政 要 心 迹 及 中 国 社 会 规 则 ( 中 ) 晚 年 周 恩 来 毛 泽 东 私 人 医 生 回 忆 录 毛 家 湾 纪 实 国 家 的 囚 徒 大 红 灯 笼 高 高 挂 等 禁 域 深 宫 话 语 联 析 夏 刚 君 子 豹 变 和 小 人 革 面 : 主 客 伸 缩 高 下 反 转 的 炎 凉 翻 覆 诸 态 据 传 毛 将 见 上 帝 前 向 毛

More information

PPBSalesDB.doc

PPBSalesDB.doc Pocket PowerBuilder SalesDB Pocket PowerBuilder PDA Pocket PowerBuilder Mobile Solution Pocket PowerBuilder Pocket PowerBuilder C:\Program Files\Sybase\Pocket PowerBuilder 1.0 %PPB% ASA 8.0.2 ASA 9 ASA

More information

Windows 2000 Server for T100

Windows 2000 Server for T100 2 1 Windows 95/98 Windows 2000 3.5 Windows NT Server 4.0 2 Windows DOS 3.5 T200 2002 RAID RAID RAID 5.1 Windows 2000 Server T200 2002 Windows 2000 Server Windows 2000 Server Windows 2000 Server 3.5 for

More information

ebook62-1

ebook62-1 1 Red Hat Linux R e d Hat Linux L i n u x X Wi n d o w Red Hat L i n u x 1.1 Red Hat Linux Red Hat 16 M 120 M 3. 5 Intel 386 C D - R O M C D - R O M We b / 1.1.1 L i n u x L i n u 4 Primary Partition Extended

More information

Microsoft Word - PHP7Ch01.docx

Microsoft Word - PHP7Ch01.docx PHP 01 1-6 PHP PHP HTML HTML PHP CSSJavaScript PHP PHP 1-6-1 PHP HTML PHP HTML 1. Notepad++ \ch01\hello.php 01: 02: 03: 04: 05: PHP 06:

More information

網路安全:理論與實務 第二版

網路安全:理論與實務 第二版 第 10 章 :Wireshark 封 包 分 析 軟 體 10-1 Wireshark 簡 介 10-2 Wireshark 的 安 裝 方 法 10-3 Wireshark 的 使 用 Wireshark 簡 介 - 發 展 歷 史 Wireshark (http://www.wireshark.org/) 是 一 個 開 放 原 始 碼 (open source software) 軟 體,

More information

2 2 3 DLight CPU I/O DLight Oracle Solaris (DTrace) C/C++ Solaris DLight DTrace DLight DLight DLight C C++ Fortran CPU I/O DLight AM

2 2 3 DLight CPU I/O DLight Oracle Solaris (DTrace) C/C++ Solaris DLight DTrace DLight DLight DLight C C++ Fortran CPU I/O DLight AM Oracle Solaris Studio 12.2 DLight 2010 9 2 2 3 DLight 3 3 6 13 CPU 16 18 21 I/O DLight Oracle Solaris (DTrace) C/C++ Solaris DLight DTrace DLight DLight DLight C C++ Fortran CPU I/O DLight AMP Apache MySQL

More information

[ 13 年 12 月 06 日, 下 午 6 点 24 分 ] Intel Hosts 新 加 入 的 同 学 们, 快 去 听 听 在 线 宣 讲 会 哦, 同 时 完 成 页 面 下 方 有 奖 调 查, 就 有 资 格 参 与 大 奖 抽 取 啦! [ 13 年 12 月 06 日, 下 午

[ 13 年 12 月 06 日, 下 午 6 点 24 分 ] Intel Hosts 新 加 入 的 同 学 们, 快 去 听 听 在 线 宣 讲 会 哦, 同 时 完 成 页 面 下 方 有 奖 调 查, 就 有 资 格 参 与 大 奖 抽 取 啦! [ 13 年 12 月 06 日, 下 午 China Career Fair: To Know a Different Intel Time Participants Chat Transcript [ 13 年 12 月 06 日, 下 午 6 点 00 分 ] Participant Hi [ 13 年 12 月 06 日, 下 午 6 点 00 分 ] Intel Hosts 大 家 好! [ 13 年 12 月 06 日, 下 午

More information

2004 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A. Sun Sun Berkeley BSD UNIX X/Open Company, Ltd. / SunSun MicrosystemsSun

2004 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A. Sun Sun Berkeley BSD UNIX X/Open Company, Ltd. / SunSun MicrosystemsSun SAP livecache Sun Cluster Solaris OS SPARC Sun Microsystems, Inc. 4150 Network Circle Santa Clara, CA 95054 U.S.A. : 817 7374 10 2004 4 A 2004 Sun Microsystems, Inc. 4150 Network Circle, Santa Clara, CA

More information

ebook20-8

ebook20-8 8 Catalyst 5000 7 V L A N C a t a l y s t V L A N V L A N 8.1 VLAN VTP V L A N A VLAN VLAN 10 VLAN 20 VLAN 10 VLAN 20 B VLAN VLAN 10 VLAN 20 VLAN 10 C VLAN VLAN 10 VLAN 20 VLAN 10 VLAN 20 8-1 VLAN 8 Catalyst

More information

GTK+ 2.0 教程

GTK+ 2.0 教程 GTK+ 2.0 教程 GTK+ 2.0 教程 译者 : huzheng,konghui,ferry,carton,yang_yi,ddd,tingle 版本号 : V_0.1.0 2002 年 6 月 25 日 本文是有关通过 C 语言接口使用 GTK (the GIMP Toolkit) 的教程 Table of Contents 中文版说明简介从这里开始用 GTK 来写 Hello World

More information

基于UML建模的管理管理信息系统项目案例导航——VB篇

基于UML建模的管理管理信息系统项目案例导航——VB篇 PowerBuilder 8.0 PowerBuilder 8.0 12 PowerBuilder 8.0 PowerScript PowerBuilder CIP PowerBuilder 8.0 /. 2004 21 ISBN 7-03-014600-X.P.. -,PowerBuilder 8.0 - -.TP311.56 CIP 2004 117494 / / 16 100717 http://www.sciencep.com

More information

ebook65-20

ebook65-20 2 0 H T T P C G I We b C G I We b H T M L C G I H T M L C G I 20.1 HTTP 17 We b N e t s c a p e Internet Explorer We b A p a c h e I I S C G I H T T P HTTP 1.0 HTTP 1.1 I n t e r n e t I n t e r n e t

More information

3.1 num = 3 ch = 'C' 2

3.1 num = 3 ch = 'C' 2 Java 1 3.1 num = 3 ch = 'C' 2 final 3.1 final : final final double PI=3.1415926; 3 3.2 4 int 3.2 (long int) (int) (short int) (byte) short sum; // sum 5 3.2 Java int long num=32967359818l; C:\java\app3_2.java:6:

More information

2009.05

2009.05 2009 05 2009.05 2009.05 璆 2009.05 1 亿 平 方 米 6 万 套 10 名 20 亿 元 5 个 月 30 万 亿 60 万 平 方 米 Data 围 观 CCDI 公 司 内 刊 企 业 版 P08 围 观 CCDI 管 理 学 上 有 句 名 言 : 做 正 确 的 事, 比 正 确 地 做 事 更 重 要 方 向 的 对 错 于 大 局 的 意 义 而 言,

More information