⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mgwidget.c

📁 嵌入式下基于MiniGUI的Web Browser
💻 C
📖 第 1 页 / 共 2 页
字号:
								 0, id, 0, 0, mgwidget->size.cx, mgwidget->size.cy,								 html->bw->docwin, 0);    SetWindowAdditionalData (mgwidget->window, add_data);    Dw_MgWidget_set_color (mgwidget->window, html);    mgwidget->id = id;    return DW_WIDGET(mgwidget);}DwWidget*  a_Dw_MgWidget_entry_new (DilloHtml* html, int id, const char* title,                                     int nr_chars, int chars_limit, DWORD styles,									DWORD add_data){    DwMgWidget *mgwidget;    mgwidget = DW_MGWIDGET (g_object_new (DW_TYPE_MGWIDGET, NULL));        Dw_MgWidget_get_text_metrics ("0", 1, &mgwidget->size.cx, &mgwidget->size.cy);    mgwidget->size.cx *= nr_chars;    mgwidget->size.cx += ADD_LENGTH;    mgwidget->size.cy += ADD_LENGTH;    if(mgwidget->size.cx < MIN_WIDTH)        mgwidget->size.cx = MIN_WIDTH;    styles |= WS_CHILD | WS_BORDER | WS_TABSTOP;    mgwidget->window = CreateWindowEx (CTRL_SLEDIT, title,                                    styles,                                   0, id, 0, 0, mgwidget->size.cx, mgwidget->size.cy,                                   html->bw->docwin, 0);    SetWindowAdditionalData (mgwidget->window, add_data);    if (chars_limit > 0)        SendMessage (mgwidget->window, EM_LIMITTEXT, chars_limit, 0L);    mgwidget->id = id;    return DW_WIDGET(mgwidget);}DwWidget* a_Dw_MgWidget_button_new (DilloHtml* html, int id,	   								const char* title, DWORD add_data){    DwMgWidget *mgwidget;    DWORD dwstyle;    mgwidget = DW_MGWIDGET (g_object_new (DW_TYPE_MGWIDGET, NULL));    dwstyle = WS_CHILD | BS_PUSHBUTTON | BS_NOTIFY | WS_TABSTOP;    if (title)        Dw_MgWidget_get_text_metrics (title, strlen(title),                              &mgwidget->size.cx, &mgwidget->size.cy);    else    {        Dw_MgWidget_get_text_metrics (" ", 1, &mgwidget->size.cx, &mgwidget->size.cy);        mgwidget->size.cx = MIN_WIDTH;    }    mgwidget->size.cx += ADD_LENGTH;    mgwidget->size.cy += ADD_LENGTH;    mgwidget->window = CreateWindowEx (CTRL_BUTTON, title, 								 dwstyle,								 0, id, 0, 0, mgwidget->size.cx, mgwidget->size.cy,								 html->bw->docwin, 0);    SetWindowAdditionalData (mgwidget->window, add_data);    mgwidget->id = id;    return DW_WIDGET(mgwidget);}DwWidget* a_Dw_MgWidget_textarea_new (DilloHtml* html, int id,	   								  const char* title, int height_chars,									  int width_chars, int chars_limit,									  DWORD add_data){    DwMgWidget *mgwidget;    mgwidget = DW_MGWIDGET (g_object_new (DW_TYPE_MGWIDGET, NULL));    Dw_MgWidget_get_text_metrics (" ", 1, &mgwidget->size.cx, &mgwidget->size.cy);    mgwidget->size.cx *= width_chars;    mgwidget->size.cy *= height_chars;    mgwidget->size.cx += APPEND_LENGTH;    mgwidget->size.cy += APPEND_LENGTH;    mgwidget->window = CreateWindowEx (CTRL_MEDIT, title,                                        WS_CHILD | WS_TABSTOP | WS_BORDER | WS_VSCROLL | WS_HSCROLL | ES_AUTOWRAP,									   0, id, 0, 0, mgwidget->size.cx, mgwidget->size.cy,                                        html->bw->docwin, 0);    SetWindowAdditionalData (mgwidget->window, add_data);    if (chars_limit > 0) {        SendMessage (mgwidget->window, EM_LIMITTEXT, chars_limit, 0L);    }    mgwidget->id = id;    return DW_WIDGET(mgwidget);}  DwWidget*  a_Dw_MgWidget_radio_button_new (DilloHtml* html, int id,                                     const char* title, DWORD add_data,                                    int is_group, gboolean is_checked){    DWORD dwstyle;	g_return_val_if_fail (title != NULL, NULL);    dwstyle = WS_CHILD | BS_AUTORADIOBUTTON | BS_CENTER| BS_NOTIFY | WS_TABSTOP;    if (is_group)       dwstyle = dwstyle | WS_GROUP;     if (is_checked)       dwstyle = dwstyle | BS_CHECKED;    return button_real_new (html, id, title, add_data, dwstyle);}DwWidget* a_Dw_MgWidget_check_button__new (DilloHtml* html, int id,                                     const char* title, DWORD add_data, gboolean is_checked){    DWORD dwstyle;	g_return_val_if_fail (title != NULL, NULL);    dwstyle = WS_CHILD | BS_AUTOCHECKBOX | BS_CENTER | BS_NOTIFY | WS_TABSTOP;    if(is_checked)        dwstyle = dwstyle | BS_CHECKED;    return button_real_new (html, id, title, add_data, dwstyle);}DwWidget* a_Dw_MgWidget_combobox_new (DilloHtml* html, int id,	   								  const char* title, DWORD add_data){    DwMgWidget *mgwidget;    mgwidget = DW_MGWIDGET (g_object_new (DW_TYPE_MGWIDGET, NULL));    if(title)        Dw_MgWidget_get_text_metrics (title, -1,			   			&mgwidget->size.cx, &mgwidget->size.cy);    else {        Dw_MgWidget_get_text_metrics (" ", 1, &mgwidget->size.cx, &mgwidget->size.cy);        mgwidget->size.cx = APPEND_LENGTH;    }    mgwidget->size.cy += ADD_LENGTH;    mgwidget->window = CreateWindowEx (CTRL_COMBOBOX, "", 								 WS_CHILD | WS_TABSTOP | CBS_DROPDOWNLIST | CBS_READONLY,								 0, id, 0, 0, mgwidget->size.cx, mgwidget->size.cy,								 html->bw->docwin, 0);    Dw_MgWidget_set_color (mgwidget->window, html);    SetWindowAdditionalData (mgwidget->window, add_data);    mgwidget->id = id;    return DW_WIDGET(mgwidget);}DwWidget* a_Dw_MgWidget_listbox_new (DilloHtml* html, int id, int size,	   								 const char* title, DWORD add_data){    DwMgWidget *mgwidget;    mgwidget = DW_MGWIDGET (g_object_new (DW_TYPE_MGWIDGET, NULL));    if(title)        Dw_MgWidget_get_text_metrics (title, strlen(title),			   					&mgwidget->size.cx, &mgwidget->size.cy);    else    {        Dw_MgWidget_get_text_metrics (" ", 1, &mgwidget->size.cx, &mgwidget->size.cy);        mgwidget->size.cx = APPEND_LENGTH;    }    mgwidget->size.cy += size ? (size-1)*ADD_LENGTH : ADD_LENGTH;    if (mgwidget->size.cx < APPEND_LENGTH)        mgwidget->size.cx = APPEND_LENGTH;    mgwidget->window =        CreateWindowEx (CTRL_LISTBOX, title,              WS_CHILD | WS_TABSTOP | LBS_MULTIPLESEL | WS_VSCROLL | WS_BORDER,             0, id, 0, 0, mgwidget->size.cx, mgwidget->size.cy,             html->bw->docwin, 0);    SetWindowAdditionalData (mgwidget->window, add_data);    mgwidget->id = id;    return DW_WIDGET(mgwidget);}void a_Dw_MgWidget_set_notification (HWND hwnd, DilloHtmlInputType type){	if (type == DILLO_HTML_INPUT_SUBMIT)		SetNotificationCallback (hwnd, mg_notif_submit_form);	else if (type == DILLO_HTML_INPUT_RESET)		SetNotificationCallback (hwnd, Html_reset_form);}void a_Dw_MgWidget_combobox_add_item (DwMgWidget* mgwidget, int selected, const char *str){    int width;    Dw_MgWidget_get_text_metrics (str, -1, &width, NULL);    width += APPEND_LENGTH;    if (width > mgwidget->size.cx) {        mgwidget->size.cx = width;    }	SendMessage (mgwidget->window, CB_ADDSTRING, 0,(LPARAM)str);    if(selected >= 0)        SendMessage (mgwidget->window, CB_SETCURSEL, selected, 0);}void a_Dw_MgWidget_listbox_add_item (DwMgWidget* mgwidget, int selected, const char *str){    int width;    Dw_MgWidget_get_text_metrics (str, -1, &width, NULL);    width += APPEND_LENGTH;    if (width > mgwidget->size.cx) {        mgwidget->size.cx = width;    }	SendMessage (mgwidget->window, LB_ADDSTRING, 0, (LPARAM)str);    if(selected >= 0)        SendMessage (mgwidget->window, LB_SETSEL, 1, selected);}#if 0DwWidget* a_Widget_button_new (DilloHtml* html, int id, DWORD add_data){    DwButton* widget ;     widget = DW_BUTTON (g_object_new (DW_TYPE_BUTTON, NULL));    widget->child->hwnd = CreateWindowEx (CTRL_BUTTON, "", 								 WS_CHILD | BS_DEFPUSHBUTTON | WS_TABSTOP,								 0, id, 0, 0, 20, 20,								 html->bw->docwin, add_data);    return (DwWidget*)widget;}#endifDwWidget* a_Dw_MgWidget_dillo_new (HWND hwnd_parent, int id,                                   const DilloUrl* start_url,                                   int width, int height,                                   DilloIFrameScrollType scrolling,                                   gboolean frame_border){    DwMgWidget *mgwidget;    DWORD dwstyle;    BrowserWindow* bw;    DwViewport* viewport;    mgwidget = DW_MGWIDGET (g_object_new (DW_TYPE_MGWIDGET, NULL));    dwstyle = WS_CHILD;    if (scrolling == IFrameScroll_YES || scrolling == IFrameScroll_AUTOMATIC)        dwstyle |= WS_VSCROLL | WS_HSCROLL;    if (frame_border)        dwstyle |= WS_BORDER;    bw = a_BrowserWindow_new (hwnd_parent);    mgwidget->size.cx = width;    mgwidget->size.cy = height;    mgwidget->window = bw->docwin = CreateWindowEx (CTRL_DILLO,                                      "",                                      dwstyle,                                      WS_EX_CLIPCHILDREN,                                      id,                                       0, 0,                                       width, height, hwnd_parent, 0);    printf("Creating Dillo Contol! (%d), id (%d), width (%d), height (%d)."            "border (%d).\n",            mgwidget->window, id, width, height, frame_border);    viewport = a_Dw_viewport_new (bw->docwin);    bw->viewport = viewport;    SetWindowAdditionalData2 (mgwidget->window, (DWORD)bw);    mgwidget->id = id;    a_Nav_push (bw, start_url);    return DW_WIDGET(mgwidget);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -