/* Looks at all tags covering the position of iter in the text view, * and if one of them is a link, follow it by showing the page identified * by the data attached to it. */ static void follow_if_link (GtkWidget *text_view, GtkTextIter *iter) { GSList *tags = NULL, *tagp = NULL; tags = gtk_text_iter_get_tags (iter); for (tagp = tags; tagp != NULL; tagp = tagp->next) { GtkTextTag *tag = tagp->data; gint page = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (tag), "page")); if (page != 0) { show_page (gtk_text_view_get_buffer (GTK_TEXT_VIEW (text_view)), page); break; } } if (tags) g_slist_free (tags); }
int main(int argc, const char* argv[]) { // the capture std::ifstream in("osd_example_test_vars.txt"); // need to remove comments // and condition from var ':' value // to set var value // Have this in the quantracker/air/osd/utilities/flash_vars_upload example // really need to combine these if(in && !in.eof()){ m_istream = ∈ }else{ std::cout << "input failed\n"; return false; } std::cout << "Flash menu sim\n"; // default pagesize uint32_t const page_size = 0x4000; if (!init_flash_pages(page_size)){ std::cout << "failed to setup flash pages\n"; } auto const & symtab = quan::stm32::flash::get_app_symbol_table(); symtab.init(); quan::stm32::flash::flash_menu(); quan::report_errors(); show_page(1); std::cout <<"write to file? Y/N"; char ch; std::cin.get(ch); if ((ch == 'Y') || ( ch == 'y')){ write_to_file("flash_vars.cpp"); } }
GtkWidget * do_hypertext (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *view; GtkWidget *sw; GtkTextBuffer *buffer; hand_cursor = gdk_cursor_new (GDK_HAND2); regular_cursor = gdk_cursor_new (GDK_XTERM); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_default_size (GTK_WINDOW (window), 450, 450); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_window_set_title (GTK_WINDOW (window), "Hypertext"); gtk_container_set_border_width (GTK_CONTAINER (window), 0); view = gtk_text_view_new (); gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (view), GTK_WRAP_WORD); g_signal_connect (view, "key-press-event", G_CALLBACK (key_press_event), NULL); g_signal_connect (view, "event-after", G_CALLBACK (event_after), NULL); g_signal_connect (view, "motion-notify-event", G_CALLBACK (motion_notify_event), NULL); buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view)); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add (GTK_CONTAINER (window), sw); gtk_container_add (GTK_CONTAINER (sw), view); show_page (buffer, 1); gtk_widget_show_all (sw); } if (!gtk_widget_get_visible (window)) { gtk_widget_show (window); } else { gtk_widget_destroy (window); window = NULL; } return window; }
int main() { int driver=0, mode=VESA_800x600x8bit; int yes; int i=0; int t=0; int style1=-1,style2=-1; char c; int n; int eee=0; initgraph(&driver, &mode, ""); mydict(); outtextxy(0,580,"Search:"); while(strcmp(str,"exit")!=0&&strcmp(str,"quit")!=0) { num=0; clear_entry(str); if(eee==0) { t=bioskey(0); } eee=0; while(t!=Enter||num==0) { if(((char)t>=32&&(char)t<=126)||t==Bspace||t==ESC) { if(t==Bspace) { if( num>0 ){ num--; str[num] = '\0'; } } else { if(t!=Enter) { c=t&0XFF; str[num++]=c; str[num] = '\0'; } } if(t==ESC) { clear_entry(str); num=0; } input_entry(); t=bioskey(0); if(num>=20) { clear_entry(str); num=0; } } else t=bioskey(0); } clear_translation(); n=strlen(str); style1=-1;style2=-1; for(i=0;i<n;i++) { if(str[i]=='*'&&i<n) style1=i; if(str[i]=='?'&&i<n) style2=i; } if(style1>0||style2>0) { search(str); if(count!=0) put_list(); } show_translation(str); if(record>0) total=2; else total=1; show_page(); if(record>0) { eee=1; t=bioskey(0); while(t==LEFT||t==RIGHT||t==DOWN||t==UP) { if(page==1&&(t==RIGHT||t==DOWN)) { clear_translation(); page++; copy_example( example, example2, record); put_translation2(example2); show_page(); } if(page==2&&(t==LEFT||t==UP)) { clear_translation(); page--; show_translation(str); show_page(); } t=bioskey(0); } } for(i=0;i<2000;i++) { translation[i]=0; example[i]=0; example2[i]=0; } page=1; record=0; } closegraph(); return 0; }
void put_list( )//输出储存在list中的检索列表里面的内容 //where 储存第一个单词在count中的序号 ,order是光标在列表中的位置 { char p[25][20]; char t1[10],t2[10]; char t3[]="of"; int i=0,t=0; int x=10,y=30; clear_list(); paint_color(order); if(count>=25) { for(i=0;i<25;i++) { strcpy(p[i],list[where+i]); } y=30; for(i=0;i<25;i++) { outtextxy(x,y,p[i]); y+=21; } } else { for(i=0;i<count;i++) { strcpy(p[i],list[where+i]); } y=30; for(i=0;i<count;i++) { outtextxy(x,y,p[i]); y+=21; } } while(t!=ESC) { if((order==1&&where>=0)||(order==25&&(where+order)<=count)||(t==PgUp&&where>0)||t==PgDn&&where+25<count||t==Home||t==End||t==Del||t==Ins) { clear_list(); paint_color(order); if(count>=25) { for(i=0;i<25;i++) { strcpy(p[i],list[where+i]); } y=30; for(i=0;i<25;i++) { outtextxy(x,y,p[i]); y+=21; } } else { for(i=0;i<count;i++) { strcpy(p[i],list[where+i]); } y=30; for(i=0;i<count;i++) { outtextxy(x,y,p[i]); y+=21; } } } else { if(t==UP) { setfillstyle(SOLID_FILL,BLACK); bar(5,30+order*21,185,51+order*21); outtextxy(10,order*21+30,p[order]); setfillstyle(SOLID_FILL,BLUE); bar(5,30+(order-1)*21,185,51+(order-1)*21); outtextxy(10,30+(order-1)*21,p[order-1]); } if(t==DOWN) { setfillstyle(SOLID_FILL,BLACK); bar(5,30+(order-2)*21,185,51+(order-2)*21); outtextxy(10,(order-2)*21+30,p[order-2]); setfillstyle(SOLID_FILL,BLUE); bar(5,30+(order-1)*21,185,51+(order-1)*21); outtextxy(10,30+(order-1)*21,p[order-1]); } } setfillstyle(SOLID_FILL,BLACK); bar(70,12,200,26); sprintf(t1,"%d",where+order); sprintf(t2,"%d",count); outtextxy(70,12,t1); outtextxy(70+strlen(t1)*8+4,12,t3); outtextxy(70+strlen(t1)*8+strlen(t3)*8+8,12,t2); t=bioskey(0); switch(t) { case DOWN: { if(order<25&&(where+order)<count) order++; else if(order==25&&(where+order)<count) { where++; } else ; }break; case UP: { if(order>1) order--; else if(order==1&&where>0) where--; else ; }break; case PgDn: { if(count<=25) ; else { if((where+50)>count) where+=count-where-25; else if(where+25>=count) ; else where+=25; } }break; case PgUp: { if((where-25)<0&&where>=-24) where=0; else if(where-25>=0) where-=25; else ; }break; case Home: { where=0; }break; case End: { if(count<=25) ; else where=count-25; }break; case Enter: { clear_translation(); strcpy(str,list[where+order-1]); show_translation(str); if(record>0) total=2; else total=1; show_page(); if(record>0) { t=bioskey(0); while(t==LEFT||t==RIGHT) { if(page==1&&t==RIGHT) { clear_translation(); page++; copy_example( example, example2, record); put_translation2(example2); show_page(); } if(page==2&&t==LEFT) { clear_translation(); page--; show_translation(str); show_page(); } t=bioskey(0); } } for(i=0;i<2000;i++) { translation[i]=0; example[i]=0; example2[i]=0; } page=1; record=0; }break; case Ins: { order=1; }break; case Del: { if(count<25) order=count; else order=25; }break; } } clear_list(); count=0;where=0;order=1; free(list); }
static void show_page_account (GoaPanel *panel, GoaObject *object) { GList *children; GList *l; GtkWidget *box; GtkWidget *grid; GtkWidget *left_grid; GtkWidget *right_grid; GtkWidget *bar; GtkWidget *label; GoaProvider *provider; GoaAccount *account; const gchar *provider_type; provider = NULL; show_page (panel, 1); box = GTK_WIDGET (gtk_builder_get_object (panel->builder, "accounts-tree-box")); gtk_widget_set_sensitive (box, TRUE); label = GTK_WIDGET (gtk_builder_get_object (panel->builder, "accounts-tree-label")); gtk_widget_hide (label); /* Out with the old */ children = gtk_container_get_children (GTK_CONTAINER (panel->accounts_vbox)); for (l = children; l != NULL; l = l->next) gtk_container_remove (GTK_CONTAINER (panel->accounts_vbox), GTK_WIDGET (l->data)); g_list_free (children); account = goa_object_peek_account (object); provider_type = goa_account_get_provider_type (account); provider = goa_provider_get_for_provider_type (provider_type); /* And in with the new */ if (goa_account_get_attention_needed (account)) { bar = gtk_info_bar_new (); label = gtk_label_new (_("Expired credentials. Please log in again.")); gtk_container_add (GTK_CONTAINER (gtk_info_bar_get_content_area (GTK_INFO_BAR (bar))), label); if (provider != NULL) gtk_info_bar_add_button (GTK_INFO_BAR (bar), _("_Log In"), GTK_RESPONSE_OK); gtk_box_pack_start (GTK_BOX (panel->accounts_vbox), bar, FALSE, TRUE, 0); g_signal_connect (bar, "response", G_CALLBACK (on_info_bar_response), panel); } left_grid = gtk_grid_new (); gtk_widget_set_halign (left_grid, GTK_ALIGN_END); gtk_widget_set_hexpand (left_grid, TRUE); gtk_orientable_set_orientation (GTK_ORIENTABLE (left_grid), GTK_ORIENTATION_VERTICAL); gtk_grid_set_row_spacing (GTK_GRID (left_grid), 0); right_grid = gtk_grid_new (); gtk_widget_set_hexpand (right_grid, TRUE); gtk_orientable_set_orientation (GTK_ORIENTABLE (right_grid), GTK_ORIENTATION_VERTICAL); gtk_grid_set_row_spacing (GTK_GRID (right_grid), 0); if (provider != NULL) { goa_provider_show_account (provider, panel->client, object, GTK_BOX (panel->accounts_vbox), GTK_GRID (left_grid), GTK_GRID (right_grid)); } grid = gtk_grid_new (); gtk_orientable_set_orientation (GTK_ORIENTABLE (grid), GTK_ORIENTATION_HORIZONTAL); gtk_grid_set_column_spacing (GTK_GRID (grid), 12); gtk_container_add (GTK_CONTAINER (grid), left_grid); gtk_container_add (GTK_CONTAINER (grid), right_grid); gtk_box_pack_start (GTK_BOX (panel->accounts_vbox), grid, FALSE, TRUE, 0); gtk_widget_show_all (panel->accounts_vbox); if (provider != NULL) g_object_unref (provider); }