rc_example1
来源:互联网 发布:撤销网络问政的投诉 编辑:程序博客网 时间:2024/05/21 00:15
makefile
CC = gcc
CFLAGS = -g -O2 -Wall -D_DEBUG=1 -export-dynamic `pkg-config --libs --cflags gtk+-2.0 `
all:
@${CC} ${CFLAGS} -Iinc *.c -o test
clean :
@rm -f demo
test.c
#include <gtk/gtk.h>
#include <button.h>
GtkWidget *button1;
void button1_callback()
{
gtk_widget_set_name (button1,"fun");
}
void button2_callback()
{
gtk_widget_set_name (button1,"try");
}
void button3_callback()
{
gtk_widget_set_name (button1,"GtkButton");
}
int main(int argc,char *argv[])
{
gtk_rc_parse("./rc/my.rc");
GtkWidget *button2,*button3;
GtkWidget *window;
GtkWidget *vbox;
GtkWidget *hbox;
GtkWidget *label0;
GtkWidget *eventbox;
gtk_init (&argc,&argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER);
gtk_window_set_decorated( GTK_WINDOW( window ) , FALSE );
vbox=gtk_vbox_new(FALSE,0);
hbox=gtk_hbox_new(FALSE,0);
eventbox = gtk_event_box_new();
gtk_container_add(GTK_CONTAINER(window),vbox);
gtk_window_set_default_size(GTK_WINDOW(window),800,480);
gtk_widget_set_name (window, "main window");
button1 = gtk_button_new_with_label ("Button1");
gtk_widget_set_size_request(button1,173,193);
g_signal_connect(G_OBJECT(button1),"clicked",G_CALLBACK(button1_callback),NULL);
gtk_button_set_relief(GTK_BUTTON(button1),GTK_RELIEF_NORMAL);
button2 = gtk_button_new_with_label ("Button2");
gtk_widget_set_size_request(button2,173,193);
gtk_widget_set_name (button2,"test");
g_signal_connect(G_OBJECT(button2),"clicked",G_CALLBACK(button2_callback),NULL);
gtk_button_set_relief(GTK_BUTTON(button2),GTK_RELIEF_HALF);
button3 = gtk_button_new_with_label ("Button3");
gtk_widget_set_size_request(button3,173,193);
g_signal_connect(G_OBJECT(button3),"clicked",G_CALLBACK(button3_callback),NULL);
//gtk_button_set_relief(GTK_BUTTON(button3),GTK_RELIEF_NONE);
label0=gtk_label_new("label0");
gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,FALSE,5);
gtk_box_pack_start(GTK_BOX(vbox),label0,FALSE,FALSE,5);
gtk_box_pack_start(GTK_BOX(hbox),button1,FALSE,FALSE,5);
gtk_box_pack_start(GTK_BOX(hbox),button2,FALSE,FALSE,5);
gtk_box_pack_start(GTK_BOX(hbox),button3,FALSE,FALSE,5);
gtk_widget_show_all(window);
gtk_main ();
return FALSE;
}
log.c
#include "log.h"
void do_log( int pri, const char *fmt, ... )
{
va_list ap;
va_start( ap, fmt );
if( ( pri == LOG_DEBUG ) && ( ! _DEBUG ) ){
return;
}
if( _SYSLOG ){
vsyslog( pri, fmt, ap );
}
else {
FILE *fp;
switch( pri ){
case LOG_INFO:
case LOG_NOTICE:
case LOG_DEBUG:
fp = stdout;
break;
default:
fp = stderr;
break;
}
switch( pri ){
case LOG_WARNING:
fputs( "Warning: ", fp );
break;
case LOG_NOTICE:
fputs( "Notice: ", fp );
break;
case LOG_CRIT:
case LOG_ERR:
fputs( "Error: ", fp );
break;
case LOG_INFO:
case LOG_DEBUG:
break;
default:
fprintf( fp, "Log type %d: ", pri );
break;
}
vfprintf( fp, fmt, ap );
fputc( '\n', fp );
}
va_end( ap );
}