Advertisement
milanmetal

[GtkWave] Modification Guidelines

Nov 24th, 2018
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.68 KB | None | 0 0
  1. // u main.c, instancira dve labele sa vremenima koja pokazuje marker.
  2.         timebox = create_time_box();
  3.         gtk_widget_show (timebox);
  4.         gtk_toolbar_insert_widget(GTK_TOOLBAR(tb),
  5.                                           timebox,
  6.                                           NULL,
  7.                       NULL,
  8.                       tb_pos /* ++ */); /* scan-build */
  9.  
  10. // ++ pod komentarom jer je poslednji element upravo dodat i ne treba uvecavati poziciju.
  11.  
  12. // ispod ide switch koji proverava koji flag je proslijedjen sa komandne linije.
  13. c = getopt_long (argc, argv, "zf:Fon:a:Ar:dl:s:e:c:t:NS:vVhxX:MD:IgCLR:P:O:WT:1:2:34:", long_options,
  14.  
  15.  
  16. // vjerovatno podesava meni sa opcijama u vrhu, File, View...
  17. #ifdef WAVE_USE_MLIST_T
  18.             menubar = alt_menu_top(GLOBALS->mainwindow);
  19. #else
  20.             get_main_menu(GLOBALS->mainwindow, &menubar);
  21. #endif
  22.             gtk_widget_show(menubar);
  23.  
  24.  
  25. // izgleda je moguce te menije sacriti preko ove globable promenjive...
  26.         if(!GLOBALS->disable_menus)
  27.             {
  28. #ifdef WAVE_USE_XID
  29.             if(GLOBALS->socket_xid) kill_main_menu_accelerators();
  30. #endif
  31.  
  32. #ifdef WAVE_USE_MLIST_T
  33.             menubar = alt_menu_top(GLOBALS->mainwindow);
  34. #else
  35.             get_main_menu(GLOBALS->mainwindow, &menubar);
  36. #endif
  37.             gtk_widget_show(menubar);
  38.  
  39.  
  40.  
  41.  
  42. // 1881. linija main.c, ovde se kreira toolbar, u nastavku slijedi instanciranje svih
  43. // toolova koje nudi, potrebno je urkljati se u prikazivanje ovog toolbara.
  44. if(GLOBALS->force_toolbars)
  45.                 {
  46.                 toolhandle=gtk_handle_box_new();
  47.                 gtk_widget_show(toolhandle);
  48.                 gtk_container_add(GTK_CONTAINER(toolhandle), menubar);
  49.                 gtk_box_pack_start(GTK_BOX(main_vbox), toolhandle, FALSE, TRUE, 0);
  50.                 }
  51.                 else
  52.                 {
  53.                 gtk_box_pack_start(GTK_BOX(main_vbox), menubar, FALSE, TRUE, 0);
  54.                 }
  55.             }
  56.  
  57.         whole_table = gtk_table_new (256, 16, FALSE);
  58.  
  59.         tb = gtk_toolbar_new();
  60.         top_table = tb;     /* export this as our top widget rather than a table */
  61.  
  62. // GTK_TOOLBAR_ICONS - kaze da u toolbaru prikazuje samo ikonice, bez njihovih labela.
  63.         gtk_toolbar_set_style(GTK_TOOLBAR(tb), GTK_TOOLBAR_ICONS);
  64.         tb_pos = 0;
  65.  
  66.  
  67. // ovako su definisane i ostale opcije iz menija, npr GTK_SIGNAL_FUNC(menu_cut_traces),
  68. // potraziti kako se dodaju precice u sistem, pa im dati neke od ovih servisa kao npr
  69.                          GTK_SIGNAL_FUNC(service_zoom_fit),
  70.                          GTK_SIGNAL_FUNC(service_zoom_in),
  71.                          GTK_SIGNAL_FUNC(service_zoom_out),
  72.                          GTK_SIGNAL_FUNC(service_left_edge), itd...
  73.  
  74.         if(GLOBALS->force_toolbars)
  75.             {
  76.             toolhandle=gtk_handle_box_new();
  77.             gtk_widget_show(toolhandle);
  78.             gtk_container_add(GTK_CONTAINER(toolhandle), top_table);
  79.             }
  80.  
  81.         stock = gtk_toolbar_insert_stock(GTK_TOOLBAR(tb),
  82.                                              GTK_STOCK_CUT,
  83.                          "Cut Traces",
  84.                          NULL,
  85.                          GTK_SIGNAL_FUNC(menu_cut_traces),
  86.                          NULL,
  87.                          tb_pos++);
  88.         style = gtk_widget_get_style(stock);
  89.         style->xthickness = style->ythickness = 0;
  90.         gtk_widget_set_style (stock, style);
  91.         gtk_widget_show(stock);
  92.  
  93.         stock = gtk_toolbar_insert_stock(GTK_TOOLBAR(tb),
  94.                                              GTK_STOCK_COPY,
  95.                          "Copy Traces",
  96.                          NULL,
  97.                          GTK_SIGNAL_FUNC(menu_copy_traces),
  98.                          NULL,
  99.                          tb_pos++);
  100.         style = gtk_widget_get_style(stock);
  101.         style->xthickness = style->ythickness = 0;
  102.         gtk_widget_set_style (stock, style);
  103.         gtk_widget_show(stock);
  104.  
  105. // 2260, generise prozor sa signalima
  106. GLOBALS->wavewindow = create_wavewindow();
  107. load_all_fonts(); /* must be done before create_signalwindow() */
  108. gtk_widget_show(GLOBALS->wavewindow);
  109. GLOBALS->signalwindow = create_signalwindow();
  110.  
  111.  
  112. // radi resize prozora sa imenima signala.
  113.         if(GLOBALS->initial_signal_window_width > GLOBALS->max_signal_name_pixel_width)
  114.  
  115.  
  116. // kljucni momenat, ovo prikazuje widget sa spiskom svih signala koji su ubaceni na waveform.
  117. // main.c, 2302. linija
  118. gtk_widget_show(GLOBALS->signalwindow);
  119.  
  120.  
  121. // manipulacija SST prozorom
  122. #if GTK_CHECK_VERSION(2,4,0)
  123. if((!GLOBALS->hide_sst)&&(GLOBALS->loaded_file_type != MISSING_FILE))
  124.     {
  125.     GLOBALS->toppanedwindow = gtk_hpaned_new();
  126.     GLOBALS->sstpane = treeboxframe("SST", GTK_SIGNAL_FUNC(mkmenu_treesearch_cleanup));
  127.     GLOBALS->expanderwindow = gtk_expander_new_with_mnemonic("_SST");
  128.     gtk_expander_set_expanded(GTK_EXPANDER(GLOBALS->expanderwindow), (GLOBALS->sst_expanded==TRUE));
  129.     if(GLOBALS->toppanedwindow_size_cache)
  130.         {
  131.         gtk_paned_set_position(GTK_PANED(GLOBALS->toppanedwindow), GLOBALS->toppanedwindow_size_cache);
  132.         GLOBALS->toppanedwindow_size_cache = 0;
  133.         }
  134.  
  135. // expander window, kreiranje kontejnera i prikaz widgeta.
  136.     gtk_container_add(GTK_CONTAINER(GLOBALS->expanderwindow), GLOBALS->sstpane);
  137.     gtk_widget_show(GLOBALS->expanderwindow);
  138.     }
  139. #endif
  140.  
  141.  
  142. /****
  143. podesavanje stackovanih prozora u panedwindowu...
  144. gtk_paned_pack1 ()
  145. void
  146. gtk_paned_pack1 (GtkPaned *paned,
  147.                  GtkWidget *child,
  148.                  gboolean resize,
  149.                  gboolean shrink);
  150. Adds a child to the top or left pane.
  151.  
  152. Parameters
  153. paned
  154. a paned widget
  155.  
  156. child
  157. the child to add
  158.  
  159. resize
  160. should this child expand when the paned widget is resized.
  161.  
  162. shrink
  163. can this child be made smaller than its requisition.
  164. ***/
  165.  
  166. #ifdef HAVE_PANED_PACK
  167. if(GLOBALS->paned_pack_semantics)
  168.     {
  169.     gtk_paned_pack1(GTK_PANED(panedwindow), GLOBALS->signalwindow, 0, 0);
  170.     gtk_paned_pack2(GTK_PANED(panedwindow), GLOBALS->wavewindow, ~0, 0);
  171.     }
  172.     else
  173. #endif
  174.     {
  175.     gtk_paned_add1(GTK_PANED(panedwindow), GLOBALS->signalwindow);
  176.     gtk_paned_add2(GTK_PANED(panedwindow), GLOBALS->wavewindow);
  177.     }
  178.  
  179. gtk_widget_show(panedwindow);
  180.  
  181. // rc.c, funkcija koja setuje hide_sst globalnu promenjivu. Pomocu ovoga se moze sakriti sst
  182. int f_hide_sst(char *str)
  183. {
  184. DEBUG(printf("f_hide_sst(\"%s\")\n",str));
  185. GLOBALS->hide_sst=atoi_64(str)?1:0;
  186. return(0);
  187. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement