This is something I started at the code sprint and found some time to
poke at.  This is a small preview, very rough.

Two new files (attached) textbox.[ch] add a generic printf-able popup.
The patch hooks that into the "Display object properties" popup menu
(the first of two such entries ;).  There's a catch: the aperture
numbers don't match the statistics display.  Help?  I couldn't trace
the structures back from what I had to what I thought was the aperture
code.

Oh, also fixes a bug with max_files being undefined.


Index: Makefile.am
===================================================================
RCS file: /cvsroot/gerbv/gerbv/src/Makefile.am,v
retrieving revision 1.53
diff -p -U3 -r1.53 Makefile.am
--- Makefile.am 22 May 2008 00:23:43 -0000      1.53
+++ Makefile.am 15 Jul 2008 06:14:25 -0000
@@ -46,7 +46,8 @@ libgerbv_la_SOURCES= \
                csv.c csv.h csv_defines.h \
                gerb_stats.c gerb_stats.h \
                drill_stats.c drill_stats.h export-rs274x.c \
-               export-drill.c
+               export-drill.c \
+               textbox.c
 
 # libgerbv shared library version.  A fairly strict rule should
 # be followed for when this version is updated.  Those rules,
@@ -83,7 +84,8 @@ gerbv_SOURCES = \
                scheme.h \
                callbacks.c callbacks.h interface.c \
                interface.h render.c render.h \
-               icons.h
+               icons.h \
+               textbox.h
 
 gerbv_LDADD = libgerbv.la
 gerbv_DEPENDENCIES = libgerbv.la
Index: callbacks.c
===================================================================
RCS file: /cvsroot/gerbv/gerbv/src/callbacks.c,v
retrieving revision 1.119
diff -p -U3 -r1.119 callbacks.c
--- callbacks.c 29 Jun 2008 19:21:52 -0000      1.119
+++ callbacks.c 15 Jul 2008 06:14:26 -0000
@@ -67,6 +67,8 @@
   #endif
 #endif
 
+#include "textbox.h"
+
 #define dprintf if(DEBUG) printf
 
 #define SAVE_PROJECT 0
@@ -1056,7 +1058,7 @@ callbacks_quit_activate                 
   gint idx;
   gint last_idx = mainProject->last_loaded;
 
-  for (idx = 0; idx<=max_files; idx++) {
+  for (idx = 0; idx<=mainProject->max_files; idx++) {
     if (mainProject->file[idx] == NULL) break;
     layers_dirty = layers_dirty || mainProject->file[idx]->layer_dirty;
   }
@@ -1858,6 +1860,43 @@ callbacks_update_layer_tree (void) {
 /* --------------------------------------------------------------------------- 
*/
 void
 callbacks_display_object_properties_clicked (GtkButton *button, gpointer   
user_data){
+  GtkWidget *tb;
+  int i;
+  gerbv_net_t *currentNet;
+
+  tb = get_textbox ("Object Properties");
+
+#ifndef RENDER_USING_GDK
+  if (screen.selectionInfo.type == GERBV_SELECTION_EMPTY)
+    return;
+
+  gint index=callbacks_get_selected_row_index();
+  if (index < 0)
+    return;
+
+  for (i=0; i<screen.selectionInfo.selectedNodeArray->len; i++){
+    gerbv_selection_item_t sItem = g_array_index 
(screen.selectionInfo.selectedNodeArray,
+                                                 gerbv_selection_item_t, i);
+    gerbv_net_t *net = sItem.net;
+    switch (net->aperture_state){
+    case GERBV_APERTURE_STATE_OFF:
+      break;
+    case GERBV_APERTURE_STATE_ON:
+      tb_printf (tb, "Aperture D%d from %g,%g to %g,%g on layer %s\n",
+                net->aperture,
+                net->start_x, net->start_y,
+                net->stop_x, net->stop_y,
+                net->layer->name);
+      break;
+    case GERBV_APERTURE_STATE_FLASH:
+      tb_printf (tb, "Aperture D%d at %g,%g on layer %s\n",
+                net->aperture,
+                net->stop_x, net->stop_y,
+                net->layer->name);
+      break;
+    }
+  }
+#endif
 }
 
 /* --------------------------------------------------------------------------- 
*/

begin 644 textbox.tar.gz
M'XL([EMAIL PROTECTED]:R!+OK^&O&*6G"A)*3)+VO3O:[EMAIL PROTECTED](C#-1>^>
M+&.OL1OC1?::A*OZO[^971O;0/I%:GO2$ZL6>W=G9F=F9V8_ZPCV(";\H6$_
M^7%-P_;R]%0^F\?JJ65/K=D\Q?=F4SOYEW9RHFDXWL2QET]`^X$ZK5H2"RL"
M>.)\^#S=U)JQ^&<H]'-;Y:GO.LR%J_9[W>P,^A?=2_,*!T,[2!P&KVP>NOZT
MX;VI/&6AX[N5PEPL'"M2<ZNQJ;@[EMAIL PROTECTED]@&])Z-]W^R?$FR4-AI8W)
M.[:,E[.82$IJCXSS7O>LI#:J%OB3LMI%AF&W?[G&$/GA]#&&<;^+BY08DM#'
M18H,8CEGQ(&B$EO`QPK`I;[EMAIL PROTECTED]/1M'1L0#;PV`\$+X(
M6*OR"0R</^,/'<OVL%_!4!6^71I=R3!MV7T-6BNC\T,!I5DS]O_^$LG,>E`4
M&<F"^TXEX%/3#GC,3'L"U8(%<"]?ZC"=<Q3&(G`L8=4J9/V:GA,;!9>U/80J
M,M6([EMAIL PROTECTED],J>:;#T(U\"55D>_Y&.:\F:[EMAIL 
PROTECTED]>6JFIHGA\GIO*NL^+3-
M#F9%/]0.M4)*DIF@>K6M*J76_ECG?K/C"II4:$]6!FW$JE*I0!_;$0\"YM3A
M8.&S>WR0F?=^Z'#J+%`,/CSUF"1"\#!-#6E7XKIH+$[0DR8H3GV,20"71VC7
M:ZT%_JO-X,;1P\,:DB&+BYXO$OS'_V]#:EO9>_:,LM2>S9&$1NJPG;(&K]$9
M2AY`Q$02A5M(LRS^/NJ5UIQ$S+J3DHG!I[E-L8KX8\JR(5FE_9MU3LST6F7O
M8V4/MI2`P]?0Q"A8G\/8J)8CKX9NL8*`VVN+UK<(/0#2A+ME&36,O[U/J?);
M%#\\;,G)3^2%QUR&X8T[ZB39CJ+,"M'G84<TLKY0QPS9/:::\8>)!]'YX,8T
M!M<]_;W>2VM,[$]#*S`QT$.&M;QZ:0[.WNH=`ZJYP%H=]M/$W:]7]O9(QTNS
MT^[USMJ=/Q1EGMA(7:5\1X_YM;S8265B2BYI1T&EM:7R3%UCO)[EMAIL PROTECTED]'GV'=
MG[)HLC!Q;#_K[&^3A(>7E01">?UQ<:>:5@<$:C49EI3*J6OI53GVHMT;Z770
M5JN@(X7EARR2"TUXY.`K5C?AJ840>1CM;E\?HI.H2M;AY19>RW$VR$NJ+52%
ME3N?E:!4N:Q;"H#^N->K`_VN5B,;YI:-#(@+A5KN;/#G2J^\LAG#L9[]9L[`
M6I>N1X%J4E^MM)*?CY,GF.,+:Y)MO*'_:9CONSIZG"AP->E(R:MJX89PJLOI
[EMAIL PROTECTED]"FL*536$<>$QRT$()$-Y3R7C_CWSIY[`J+EN]R\'YHW>
MO;PRT!V]\R(5Q0O2-$\QP17A"+-`7W/L%Q5`3P2^75H_%LN`K98?&;<]W>P:
M[5ZW\ZW")SQPOM:T;Q1M,SJ:2\(_X*W"=WT;3WD>XAJT,V_'(Z-[<6MV]+ZA
M#[]UD011<[EMAIL PROTECTED];AJY(I"VY*)8J>ELPD+T]Q
M3YW5YBK3\[S))RBP`VO)DRQ]QH8QZ*LL\E06Y<,X:NK]\Z_./X49T@)3J#,R
M14B%5--4'U02<0^?H3ANWREQ(V/00;-[>GOXQ7*OQ%`1M3$X[YCS:*G/8.76
M0O^H5:D_U#);:\JW6C5("\;WLDJ!_N]M50'J$WZ0)TZAE*_=!BBBDCF/?<JG
M[&@ZO]37S^.F1O\WN#VL]XA1UE;8#B?D30.]G9.VMM*E6/[EMAIL PROTECTED]/51_!
MBD3W:U>!`D26"9;AYFVH]SL7_3A%\(6BLJ^V([^0*$B/\QN71!R+_TXOAM(P
M,3'G>&46[H91]=)=UIWA_:71:)1,[=)=QA<*VS\*^M.)=U9T!P<S_*7!A64&
M>/,&*YK&=?E[G%T00H;W;T<=Q%86DXH.M9!.4202+BKM377QQ^B:HX\F'"LJ
M5*7.Q%A;(6]E_ZM4P&&S#+DS[Z3B#R5V7DWAQ`HC8[>NR&L%5#LU%W&8N3,G
MD7H7-?F>\4!,+'1,VH8\)IY1-T_1(H,?QBP2:Z12TSH\;RH>VJ6B>N4C3<ZN
M^!7X2J7D0&<-),[EMAIL PROTECTED]
M3>YGMK0R-;P?N,;GO_]JQ\<G^???TQ<G\OOOR^/=]]^?T8X.*HC:I_IY&Y[#
M97\,>H!8(>(AUOUS1@@"VHG@,XEDB=3P_!A</V`QX(L%<ZJR>*67U\H&4A`1
M0(?/EQ$A;*AV:G"L:?^&\[<H,>"1S^"5\^%W1[TW;#Y[D[+]TG5^DX)8U/#J
M"TS?DZ;D/=)>'[EMAIL PROTECTED]:OO^&_TQ,0'ILG"'Q9`OK#''Y)^:5N\XA/(VM&VLD/
M7C%WQ;T5L18@(@7;"K$8.SZ5?80G#$\AL$+GB$<PXX[O+DD.CDED3>[EMAIL PROTECTED]
M8K*0.N2A2X;[EMAIL PROTECTED]@>(*>CQ>`F(&%2]-([.$),)%RB.."=!BE.L`%'3#2
MERU@/LY'L&!13*CF.%LC%5@''I&0JB5(\PCXG/AJJ.X2`DODK(U'S,^M=/!\
ME+(]/D>+/!2)-M[[B(DF#)*8N4E0)Q%(##==XVHP-J#=OX6;]G#8[ANW+206
M'B%ZMF!*E#^;XP8X@'9%5BB6J#Y)>*</.U?(TC[K]KK&+1H!%UVCKX]&<#$8
M0AOO*4.CVQGWVD.X'@^O$:XV`$:,U&(DX#,N=N4NH1L=AI>8(,X,O\6-19"7
M!`YXUH+A!MO,7Z!N%D*1^?++FT="K("'4VDF$N>.;-'Q'W(\AN\C/*I`\,UM
M)?9\9^O0#>U&'5[\"@9#)S&X#BP;]W.4D("[EMAIL PROTECTED]&[-FC'6.Y@/&JC
ME*-*Y>[EMAIL PROTECTED]/ZB_()5:98XX:\))HL+5WA+)^P4NERZ0T6H0I<>"Q#$*&K$-!%/
MYA#X$YF9%9*=_?&%#E"Z=UU5GF(7;X.%D>)77_C"5]\4"ZY_[RY(6)%LAXME
GJ*AP(G*D?U'YIVOCKNW:KNW:KNW:KNW:KNW:_UO['QC)V?,`*```
`
end


_______________________________________________
geda-dev mailing list
[email protected]
http://www.seul.org/cgi-bin/mailman/listinfo/geda-dev

Reply via email to