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 );

}

原创粉丝点击