Exemple #1
0
/*-----------------------------------------------------------------------------------*/
PROCESS_THREAD(about_process, ev, data)
{
    unsigned char width;

    PROCESS_BEGIN();

    width = ctk_desktop_width(NULL);

    strcpy(abouturl_ascii, abouturl_petscii);
    petsciiconv_toascii(abouturl_ascii, sizeof(abouturl_ascii));

    if(width > 34) {
        ctk_dialog_new(&aboutdialog, 32, 9);
    } else {
        ctk_dialog_new(&aboutdialog, width - 2, 9);
    }
    CTK_WIDGET_ADD(&aboutdialog, &aboutlabel1);
    CTK_WIDGET_ADD(&aboutdialog, &aboutlabel2);
    CTK_WIDGET_ADD(&aboutdialog, &aboutlabel3);
    CTK_WIDGET_ADD(&aboutdialog, &aboutlabel4);
    if(width > 34) {
        CTK_WIDGET_ADD(&aboutdialog, &abouturl);
        CTK_WIDGET_SET_FLAG(&abouturl, CTK_WIDGET_FLAG_MONOSPACE);
    } else {
        CTK_WIDGET_SET_XPOS(&aboutlabel1, 0);
        CTK_WIDGET_SET_XPOS(&aboutlabel2, 0);
        CTK_WIDGET_SET_XPOS(&aboutlabel3, 0);
        CTK_WIDGET_SET_XPOS(&aboutlabel4, 0);

        CTK_WIDGET_SET_XPOS(&aboutclose, 0);
    }
    CTK_WIDGET_ADD(&aboutdialog, &aboutclose);
    CTK_WIDGET_FOCUS(&aboutdialog, &aboutclose);

    ctk_dialog_open(&aboutdialog);

    while(1) {
        PROCESS_WAIT_EVENT();
        if(ev == PROCESS_EVENT_EXIT) {
            about_quit();
            PROCESS_EXIT();
        } else if(ev == ctk_signal_button_activate) {
            if(data == (process_data_t)&aboutclose) {
                about_quit();
                PROCESS_EXIT();
            }
        } else if(ev == ctk_signal_hyperlink_activate) {
            if((struct ctk_widget *)data == (struct ctk_widget *)&abouturl) {
                about_quit();
                PROCESS_EXIT();
            }
        }
    }

    PROCESS_END();
}
Exemple #2
0
/*static DISPATCHER_SIGHANDLER(about_sighandler, s, data)*/
EK_EVENTHANDLER(about_eventhandler, ev, data)
{
  unsigned char width;
  EK_EVENTHANDLER_ARGS(ev, data);

  if(ev == EK_EVENT_INIT) {
    width = ctk_desktop_width(NULL);
    
    strcpy(abouturl_ascii, abouturl_petscii);
    petsciiconv_toascii(abouturl_ascii, sizeof(abouturl_ascii));

    if(width > 34) {
      ctk_dialog_new(&aboutdialog, 32, 9);
    } else {
      ctk_dialog_new(&aboutdialog, width - 2, 9);
    }
    CTK_WIDGET_ADD(&aboutdialog, &aboutlabel1);
    CTK_WIDGET_ADD(&aboutdialog, &aboutlabel2);
    CTK_WIDGET_ADD(&aboutdialog, &aboutlabel3);
    CTK_WIDGET_ADD(&aboutdialog, &aboutlabel4);
    if(width > 34) {
      CTK_WIDGET_ADD(&aboutdialog, &abouturl);
      CTK_WIDGET_SET_FLAG(&abouturl, CTK_WIDGET_FLAG_MONOSPACE);
    } else {
      CTK_WIDGET_SET_XPOS(&aboutlabel1, 0);
      CTK_WIDGET_SET_XPOS(&aboutlabel2, 0);
      CTK_WIDGET_SET_XPOS(&aboutlabel3, 0);
      CTK_WIDGET_SET_XPOS(&aboutlabel4, 0);
      
      CTK_WIDGET_SET_XPOS(&aboutclose, 0);
    }
    CTK_WIDGET_ADD(&aboutdialog, &aboutclose);
    CTK_WIDGET_FOCUS(&aboutdialog, &aboutclose);
    
    /*    dispatcher_listen(ctk_signal_button_activate);
	  dispatcher_listen(ctk_signal_hyperlink_activate);*/
    ctk_dialog_open(&aboutdialog);
    
  } else if(ev == EK_EVENT_REQUEST_EXIT) {
    about_quit();
  } else if(ev == ctk_signal_button_activate) {
    if(data == (ek_data_t)&aboutclose) {
      about_quit();
    }
  } else if(ev == ctk_signal_hyperlink_activate) {
    if((struct ctk_widget *)data == (struct ctk_widget *)&abouturl) {
      about_quit();
    }
  }
}