/*
====================================================================
Whisper chatter if a user is selected.
====================================================================
*/
void client_whisper_chatter( 
    GuiWidget *widget, GuiEvent *event )
{
#ifdef NETWORK_ENABLED
	char buf[MAX_CHATTER_SIZE + 1];
	
	if ( event->type != GUI_CLICKED ) return;
	
	/* get message */
	gui_edit_get_text( edit_chatter, 
			buf, MAX_CHATTER_SIZE + 1, 0,-1 );
	
	/* send to selected user */
	if ( client_user ) {
		msg_begin_writing( msgbuf, &msglen, MAX_MSG_SIZE );
		msg_write_int8( MSG_WHISPER );
		msg_write_int32( client_user->id );
		msg_write_string( buf );
		client_transmit( CODE_BLUE, msglen, msgbuf );

		/* clear chat edit */
		gui_edit_set_text( edit_chatter, "" );
	}
	else
		client_add_chatter( _("You must select a user to whisper!"), 1 );
#endif
}
/*
====================================================================
Send chatter this function is either called by the send button
or by the edit.
====================================================================
*/
void client_send_chatter( 
    GuiWidget *widget, GuiEvent *event )
{
#ifdef NETWORK_ENABLED
	char buf[MAX_CHATTER_SIZE + 1];
	if ( (  widget->type == GUI_EDIT && 
		event->type == GUI_KEY_RELEASED &&
		event->key.keysym == SDLK_RETURN ) ||
		( widget->type == GUI_BUTTON &&
		event->type == GUI_CLICKED ) ) {
		/* get message */
		gui_edit_get_text( edit_chatter, 
				buf, MAX_CHATTER_SIZE + 1, 0,-1 );
		/* clear chat edit */
		gui_edit_set_text( edit_chatter, "" );

		msg_begin_writing( msgbuf, &msglen, MAX_MSG_SIZE );
		/* a prepended '/' means this is a command */
		if ( buf[0] == '/' ) {
			msg_write_int8( MSG_COMMAND );
			msg_write_string( buf+1 );
		}
		else {
			msg_write_int8( MSG_CHATTER );
			msg_write_string( buf );
		}
		client_transmit( CODE_BLUE, msglen, msgbuf );
	}
#endif
}
/*
====================================================================
Handle channel (un)selection.
====================================================================
*/
void client_handle_channel_list( 
    GuiWidget *widget, GuiEvent *event )
{
	char *name;
    /* if a channel is selected the name is copied into the edit.
       unselecting does not change anything. the channel by the 
       caption in the edit is opened on enter_channel() */
    if ( event->type == GUI_ITEM_SELECTED ) {
        name = list_get( client_channels, event->item.y );
        if ( name ) gui_edit_set_text( edit_channel, name );
    }
}
/*
====================================================================
Open channel selector
====================================================================
*/
void client_select_channel( GuiWidget *widget, GuiEvent *event )
{
    if ( event->type != GUI_CLICKED ) return;
    /* select first channel (we always have MAIN) */
    gui_list_update( list_channels, client_channels->count );
    if ( client_channels->count > 0 ) {
        gui_edit_set_text( edit_channel, list_first( client_channels ) );
        gui_list_select( list_channels, 0,0, 1 );
    }
    gui_widget_show( dlg_channels );
    client_state = CLIENT_SELECT_CHANNEL;
}
Exemple #5
0
void notifier(int index, int prev_index, INT16U option)
{
    int i;
    long i32;

    if(get_max_index() < 0)
        return;

    i = index+1;

    i32 = (long)i * 100; /* 这里必须用long型数据, 不然当i>327的时候就会变成负数 */
    i = (int)(i32/(get_max_index()+1));

    gui_progress_set_value(progress1, i);

    gui_edit_set_text(edit, "又修改了一次");
    
}
/*
====================================================================
Send chatter to gamepeer in pauseroom when ENTER was pressed.
====================================================================
*/
void client_send_pausechatter( GuiWidget *widget, GuiEvent *event )
{
#ifdef NETWORK_ENABLED
	char buf[MAX_CHATTER_SIZE + 1];
	if ( widget->type == GUI_EDIT && 
			event->type == GUI_KEY_RELEASED &&
			event->key.keysym == SDLK_RETURN ) {
		/* get message */
		sprintf( buf, "<%s> ", client_name );
		gui_edit_get_text( edit_pausechatter, 
				buf+strlen(buf), MAX_CHATTER_SIZE + 1, 0,-1 );
		/* clear chat edit */
		gui_edit_set_text( edit_pausechatter, "" );
		/* deliver message to remote ... */
		msg_begin_writing( msgbuf, &msglen, MAX_MSG_SIZE );
		msg_write_int8( MSG_CHATTER );
		msg_write_string( buf );
		client_transmit( CODE_BLUE, msglen, msgbuf );
		client_add_pausechatter( buf, 0 );
	}
#endif
}
Exemple #7
0
void demo_init_gui(void)
{
    init_font();


    root1 = gui_create_control(GUI_CTRL_FORM, 6, 6, 1012, 756, 3, 0, 0, FORM_STYLE_XP_BORDER);    
    if(!root1)return;
    gui_form_init_private(root1, 32);
    gui_form_set_caption(root1, "Root1");

    root2 = gui_create_control(GUI_CTRL_FORM, 400, 360, 560, 345, 8, 64, 0, 0);
    if(!root2)return; 
    gui_form_init_private(root2, 32);
    gui_form_set_caption(root2, "Root2");

    form1 = gui_create_control(GUI_CTRL_FORM, 180, 50, 320, 82, 5, 0, 0, FORM_STYLE_XP_BORDER);
    if(!form1)return; 
    gui_form_init_private(form1, 32);
    gui_form_set_caption(form1, "Form1");

    label1 = gui_create_control(GUI_CTRL_LABEL, 50, 50, 100, 32, 4, 0, 0, LABEL_STYLE_BORDER);
    if(!label1)return; 
    gui_label_init_private(label1, 32);
    gui_label_set_text(label1, "标签");

    edit1 = gui_create_control(GUI_CTRL_EDIT, 50, 100, 100, 32, 9, 0, 0, 0);
    gui_edit_init_private(edit1, 32);
    gui_edit_set_text(edit1, "this is a edit!");
    if(!edit1)return; 

    button1 = gui_create_control(GUI_CTRL_BUTTON, 3, 3, 314, 32, 9, 0, 0, 0);
    if(!button1)return;
   
    progress1 = gui_create_control(GUI_CTRL_PROGRESS, 50, 150, 420, 32, 1, 0, 0, 0);
    if(!progress1)return; 
    gui_set_control_associated(progress1, &assoc1, 0);
    gui_progress_init_private(progress1);

    my_control = gui_create_control(my_ctrl_id, 0, 0, 0, 0, 0, 0, 0, 0);
    if(!my_control)return;

    about_system_root = gui_create_control(GUI_CTRL_FORM, 6, 6, 1012, 756, 3, 0, 0, FORM_STYLE_XP_BORDER);  
    if(!about_system_root)return;
    gui_form_init_private(about_system_root, 32);
    gui_form_set_caption(about_system_root, "about_system_root");
    
    sys_monitor = gui_create_control(GUI_CTRL_SYS_MNTR, 16, 16, 1, 1, 0, 0, 0, SYS_MNTR_STYLE_STATIC_BDR|SYS_MNTR_STYLE_NO_BORDER);
    if(!sys_monitor)return;
    gui_sys_mntr_init_private(sys_monitor);

    pic1 = gui_create_control(GUI_CTRL_PICTURE, 50, 200, 150, 100, 0, 0, 0, 0);
    gui_picture_init_private(pic1);
    if(1){
        InitBMPINFO(&info[0]);
        LoadBmp(&info[0], "demo.bmp");
        InitBMPINFO(&info[1]);
        LoadBmp(&info[1], "demo1.bmp");
        InitBMPINFO(&info[2]);
        LoadBmp(&info[2], "demo2.bmp");
        InitBMPINFO(&info[3]);
        LoadBmp(&info[3], "demo3.bmp");
        InitBMPINFO(&info[4]);
        LoadBmp(&info[4], "demo4.bmp");
        InitBMPINFO(&info[5]);
        LoadBmp(&info[5], "demo5.bmp");
        gui_picture_set_picture(pic1, &info);
    }
        
    gui_control_link(NULL, root1);
    gui_control_link(NULL, root2);

    gui_control_link(about_system_root, sys_monitor);
    
    gui_control_link(root2, form1);
    gui_control_link(root2, my_control);
    gui_control_link(root2, label1);
    gui_control_link(root2, edit1);
    gui_control_link(form1, button1);
    gui_control_link(root2, progress1);
    gui_control_link(root2, pic1);

    RegisterKeyHook(gui_keyhook);

    init_welcome_screen();

    StartGUI();
    return;
}
Exemple #8
0
void __task refresh_task(void * data)
{
    long count = 0;
    char buf[64];
    int flag = 0;

    data = data;

    for (;;) {
        sprintf(buf, "[%d%%] %ld $ %ld", CPU_USED, count, 50000-count*3);
        count++;
        if (count >= 5000)
            count = 1;
        gui_label_set_text(label, buf);

        #if 0
        gui_form_set_caption(form, buf);
        #endif

        sprintf(buf, "[%d%%] %ld 将那个Label盖住", CPU_USED, count*3);
        gui_button_set_caption(button, buf);

        if (0) {
            static int f = 0, i = 0;
            static KEYCODE key, test_keys[] = {'d', ENTER, ESC, 'f', ENTER, 'h', ENTER, ESC};

            if (--f <= 0) {
                f = 1;
                /* key = test_keys[i++]; */
                key = (random(128) * random(128)) % 128;
                if (key < 0x10 && key != ESC) {
                    key += 0x10;
                }
                putkey(key);
                if (i >= sizeof(test_keys))
                    i = 0;
            }
        }

        if (1) {
            static int f = 0, x = 0, y = 0;

            if (--f <= 0) {
                f = 20;
                x = random(900);
                y = random(700);
                gui_window_moveto(window3, x, y);
            }
        }        
	
        if (1) {
            static int f = 0, x = 0;
            char buf[32];

            if (--f <= 0) {
                f = 10;
                x = random(20000);
                sprintf(buf, "random() = %d", x);
                gui_edit_set_text(edit, buf);
            }
        }

        if (moveto_now) {
            moveto_now = 0;
            gui_window_moveto(window3, moveto_x, moveto_y);
        }

        TaskSleep(20);
    }
}
Exemple #9
0
void demo_init_gui(void)
{
    InitBMPINFO(&icon);
    LoadBmp(&icon, "icon.bmp");
    load_fonts();

    gui_desktop_enable();
    gui_desktop_set_color(CLRSCR_COLOR2);
    
    form = gui_create_widget(GUI_WIDGET_FORM, 180, 120, 632, 500, 0, 0, 0, FORM_STYLE_XP_BORDER|FORM_STYLE_TITLE);
    if(!form)
        goto err;
    gui_form_init_private(form, 128);
    gui_form_set_caption(form, "控件演示");
    gui_form_set_icon(form, &icon);

    edit = gui_create_widget(GUI_WIDGET_EDIT, 80, 270, 460, 48, color, bkcolor, 0, style);
    if(!edit)
        goto err;
    gui_edit_init_private(edit, 128);
    gui_edit_set_text(edit, "这是一个文本框");

    button = gui_create_widget(GUI_WIDGET_BUTTON, 235+156, 142+100, 236, 32, COLOR_YELLOW, 64, font16, 0); /*BUTTON_STYLE_CLIENT_BDR*/
    if(!edit)
        goto err;
    gui_button_init_private(button, 128);
    gui_button_set_caption(button, "将那个Label盖住");

    test = gui_create_widget(GUI_WIDGET_EDIT, 80, 330, 460, 32, 0, 0, 0, 0);
    if(!test)
        goto err;
    gui_edit_init_private(test, 128);
    gui_edit_set_text(test, "");

    label = gui_create_widget(GUI_WIDGET_LABEL, 80, 380, 460, 64, COLOR_WHITE, 66, font48, LABEL_STYLE_SUBSIDE);
    if(!edit)
        goto err;
    gui_label_init_private(label, 128);
    gui_label_set_text(label, "Startting...");

    view = gui_create_widget(GUI_WIDGET_VIEW, 80, 48, 460, 200, 0, 0, 0, VIEW_STYLE_NONE_FIRST|VIEW_STYLE_FIELDS_TITLE|VIEW_STYLE_STATISTIC_BAR);
    if(!view)
        goto err;
    init_view(view);

    progress1 = gui_create_widget(GUI_WIDGET_PROGRESS, 80, 251, 460, 14, 0, 0, 0, PROGRESS_STYLE_BORDER);
    if(!progress1)
        goto err;
    gui_progress_init_private(progress1, 100);

    dialog = input_dialog_initialize(&abcde);
    if(!dialog)
        goto err;

    gui_widget_link(NULL, form);
    gui_widget_link(form, view);
    gui_widget_link(form, edit);
    gui_widget_link(form, label);
    gui_widget_link(form, progress1);
    gui_widget_link(form, test);

    gui_widget_link(NULL, dialog);

    gui_widget_link(NULL, button);

    window1 = gui_create_window(form);
    gui_show_window(window1);

    window2 = gui_create_window(dialog);
    gui_show_window(window2);

    window3 = gui_create_window(button);
    gui_show_window(window3);

    gui_form_set_caption(form, os_get_description());

    StartGUI();
    
err:
    return;
}
Exemple #10
0
void demo_init_gui(void)
{
    demo_init_font();

    my_ctrl_id=gui_register_usr_ctrl(&my_control_type);
    sys_monitor_id = gui_register_usr_ctrl(&sys_monitor_type);

    root1 = gui_create_control(GUI_CTRL_FORM, 60, 100, 800, 500, 3, 0, 0, 0);    
    if(!root1)return;

    root2 = gui_create_control(GUI_CTRL_FORM, 100, 200, 800, 368, 5, 0, 0, 0);
    if(!root2)return; 

    form1 = gui_create_control(GUI_CTRL_FORM, 180, 50, 320, 82, 5, 0, 0, FORM_STYLE_XP_BORDER);
    if(!form1)return; 

    label1 = gui_create_control(GUI_CTRL_LABEL, 50, 50, 100, 32, 7, 0, 0, LABEL_STYLE_BORDER);
    if(!label1)return; 
    gui_label_init_private(label1, 32);
    gui_label_set_text(label1, "this is a label!");

    edit1 = gui_create_control(GUI_CTRL_EDIT, 50, 100, 100, 32, 9, 0, 0, 0);
    gui_edit_init_private(edit1, 32);
    gui_edit_set_text(edit1, "this is a edit!");
    if(!edit1)return; 

    button1 = gui_create_control(GUI_CTRL_BUTTON, 3, 3, 314, 32, 9, 0, 0, 0);
    if(!button1)return;
   
    progress1 = gui_create_control(GUI_CTRL_PROGRESS, 50, 150, 700, 32, 0, 0, 0, 0);
    if(!progress1)return; 
    gui_set_control_associated(progress1, &assoc1, 0);
    gui_progress_init_private(progress1);

    my_control = gui_create_control(my_ctrl_id, 0, 0, 0, 0, 0, 0, 0, 0);
    if(!my_control)return;

    sys_monitor = gui_create_control(sys_monitor_id, 30, 6, 10, 10, 0, 0, 0, 0);
    if(!sys_monitor)return;

    pic1 = gui_create_control(GUI_CTRL_PICTURE, 50, 200, 150, 100, 0, 0, 0, 0);
    gui_picture_init_private(pic1);
    if(1){
        InitBMPINFO(&info[0]);
        LoadBmp(&info[0], "demo.bmp");
        InitBMPINFO(&info[1]);
        LoadBmp(&info[1], "demo1.bmp");
        InitBMPINFO(&info[2]);
        LoadBmp(&info[2], "demo2.bmp");
        InitBMPINFO(&info[3]);
        LoadBmp(&info[3], "demo3.bmp");
        InitBMPINFO(&info[4]);
        LoadBmp(&info[4], "demo4.bmp");
        InitBMPINFO(&info[5]);
        LoadBmp(&info[5], "demo5.bmp");
        gui_picture_set_picture(pic1, &info);
    }
        
    gui_control_link(NULL, root1);
    gui_control_link(NULL, root2);

    gui_control_link(root1, sys_monitor);

    gui_control_link(root2, form1);
    gui_control_link(root2, my_control);
    gui_control_link(root2, label1);
    gui_control_link(root2, edit1);
    gui_control_link(form1, button1);
    gui_control_link(root2, progress1);
    gui_control_link(root2, pic1);

    RegisterKeyHook(gui_keyhook);

    #if 0
    printf("root1-1: %d, %d, %d, %d, %d\n",
        root1->rect.x,
        root1->rect.y,
        root1->rect.width,
        root1->rect.height,
        root1->color);
    printf("root1-2: %d, %d, %d, %d, %d\n",
        root1->real_rect.x,
        root1->real_rect.y,
        root1->real_rect.width,
        root1->real_rect.height,
        root1->color);
    printf("root2-1: %d, %d, %d, %d, %d\n",
        root2->rect.x,
        root2->rect.y,
        root2->rect.width,
        root2->rect.height,
        root2->color);
    printf("root2-2: %d, %d, %d, %d, %d\n",
        root2->real_rect.x,
        root2->real_rect.y,
        root2->real_rect.width,
        root2->real_rect.height,
        root2->color);
    printf("label1-1: %d, %d, %d, %d, %d\n",
        label1->rect.x,
        label1->rect.y,
        label1->rect.width,
        label1->rect.height,
        label1->color);
    printf("label1-2: %d, %d, %d, %d, %d\n",
        label1->real_rect.x,
        label1->real_rect.y,
        label1->real_rect.width,
        label1->real_rect.height,
        label1->color);
    getch();
    #endif

    StartGUI();
    gui_set_root_control(root1);
    return;
}