📄 mgwidget.c
字号:
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 + -