fxruby 1.2.2 → 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. data/ChangeLog +199 -0
  2. data/doc/apes02.html +2 -2
  3. data/doc/apes03.html +1 -1
  4. data/doc/book.html +1 -1
  5. data/doc/changes.html +48 -3
  6. data/doc/cvs.html +2 -2
  7. data/doc/differences.html +3 -3
  8. data/doc/gems.html +43 -43
  9. data/doc/implementation.html +1 -1
  10. data/doc/library.html +5 -5
  11. data/doc/opengl.html +5 -5
  12. data/doc/pt02.html +1 -1
  13. data/doc/scintilla.html +4 -4
  14. data/examples/browser.rb +1 -1
  15. data/examples/button.rb +59 -48
  16. data/examples/groupbox.rb +5 -4
  17. data/examples/ratio.rb +70 -0
  18. data/examples/table.rb +1 -1
  19. data/ext/fox12/FXRuby.cpp +2 -1
  20. data/ext/fox12/core_wrap.cpp +16 -6
  21. data/ext/fox12/dc_wrap.cpp +16 -6
  22. data/ext/fox12/dialogs_wrap.cpp +16 -6
  23. data/ext/fox12/frames_wrap.cpp +16 -6
  24. data/ext/fox12/fx3d_wrap.cpp +16 -6
  25. data/ext/fox12/iconlist_wrap.cpp +16 -6
  26. data/ext/fox12/icons_wrap.cpp +18 -7
  27. data/ext/fox12/image_wrap.cpp +16 -6
  28. data/ext/fox12/label_wrap.cpp +16 -6
  29. data/ext/fox12/layout_wrap.cpp +16 -6
  30. data/ext/fox12/librb.c +18 -7
  31. data/ext/fox12/list_wrap.cpp +16 -6
  32. data/ext/fox12/mdi_wrap.cpp +16 -6
  33. data/ext/fox12/menu_wrap.cpp +16 -6
  34. data/ext/fox12/scintilla_wrap.cpp +19 -12
  35. data/ext/fox12/table_wrap.cpp +16 -6
  36. data/ext/fox12/text_wrap.cpp +16 -6
  37. data/ext/fox12/treelist_wrap.cpp +16 -6
  38. data/ext/fox12/ui_wrap.cpp +16 -6
  39. data/lib/fox12/aliases.rb +32 -11
  40. data/lib/fox12/dialogs.rb +72 -0
  41. data/lib/fox12/execute_nonmodal.rb +70 -0
  42. data/lib/fox12/iterators.rb +3 -3
  43. data/lib/fox12/splashscreen.rb +83 -0
  44. data/lib/fox12/version.rb +1 -1
  45. data/rdoc-sources/FXDC.rb +14 -13
  46. data/rdoc-sources/FXDataTarget.rb +30 -5
  47. data/rdoc-sources/FXFileDialog.rb +50 -5
  48. data/rdoc-sources/FXList.rb +13 -13
  49. data/rdoc-sources/FXMemoryBuffer.rb +15 -10
  50. data/rdoc-sources/FXTable.rb +193 -107
  51. data/rdoc-sources/FXText.rb +2 -2
  52. data/rdoc-sources/FXToolBarTab.rb +69 -0
  53. data/rdoc-sources/FXToolTip.rb +1 -1
  54. data/tests/TC_FXMaterial.rb +14 -0
  55. metadata +10 -4
@@ -86,13 +86,16 @@ private:
86
86
 
87
87
  #ifdef __cplusplus
88
88
  # ifndef RUBY_METHOD_FUNC /* These definitions should work for Ruby 1.4.6 */
89
+ # define PROTECTFUNC(f) ((VALUE (*)()) f)
89
90
  # define VALUEFUNC(f) ((VALUE (*)()) f)
90
91
  # define VOIDFUNC(f) ((void (*)()) f)
91
92
  # else
92
93
  # ifndef ANYARGS /* These definitions should work for Ruby 1.6 */
94
+ # define PROTECTFUNC(f) ((VALUE (*)()) f)
93
95
  # define VALUEFUNC(f) ((VALUE (*)()) f)
94
96
  # define VOIDFUNC(f) ((RUBY_DATA_FUNC) f)
95
- # else /* These definitions should work for Ruby 1.7 */
97
+ # else /* These definitions should work for Ruby 1.7+ */
98
+ # define PROTECTFUNC(f) ((VALUE (*)(VALUE)) f)
96
99
  # define VALUEFUNC(f) ((VALUE (*)(ANYARGS)) f)
97
100
  # define VOIDFUNC(f) ((RUBY_DATA_FUNC) f)
98
101
  # endif
@@ -265,13 +268,14 @@ SWIGIMPORT(char *) SWIG_UnpackData(char *, void *, int);
265
268
  #else
266
269
 
267
270
  static swig_type_info *swig_type_list = 0;
271
+ static swig_type_info **swig_type_list_handle = &swig_type_list;
268
272
 
269
273
  /* Register a type mapping with the type-checking */
270
274
  SWIGRUNTIME(swig_type_info *)
271
275
  SWIG_TypeRegister(swig_type_info *ti) {
272
276
  swig_type_info *tc, *head, *ret, *next;
273
277
  /* Check to see if this type has already been registered */
274
- tc = swig_type_list;
278
+ tc = *swig_type_list_handle;
275
279
  while (tc) {
276
280
  if (strcmp(tc->name, ti->name) == 0) {
277
281
  /* Already exists in the table. Just add additional types to the list */
@@ -286,8 +290,8 @@ SWIG_TypeRegister(swig_type_info *ti) {
286
290
  next = 0;
287
291
 
288
292
  /* Place in list */
289
- ti->prev = swig_type_list;
290
- swig_type_list = ti;
293
+ ti->prev = *swig_type_list_handle;
294
+ *swig_type_list_handle = ti;
291
295
 
292
296
  /* Build linked lists */
293
297
  l1:
@@ -416,7 +420,7 @@ SWIG_TypeEquiv(const char *nb, const char *tb) {
416
420
  /* Search for a swig_type_info structure */
417
421
  SWIGRUNTIME(swig_type_info *)
418
422
  SWIG_TypeQuery(const char *name) {
419
- swig_type_info *ty = swig_type_list;
423
+ swig_type_info *ty = *swig_type_list_handle;
420
424
  while (ty) {
421
425
  if (ty->str && (SWIG_TypeEquiv(ty->str,name))) return ty;
422
426
  if (ty->name && (strcmp(name,ty->name) == 0)) return ty;
@@ -434,7 +438,7 @@ SWIG_TypeClientData(swig_type_info *ti, void *clientdata) {
434
438
  equiv = ti->next;
435
439
  while (equiv) {
436
440
  if (!equiv->converter) {
437
- tc = swig_type_list;
441
+ tc = *swig_type_list_handle;
438
442
  while (tc) {
439
443
  if ((strcmp(tc->name, equiv->name) == 0))
440
444
  SWIG_TypeClientData(tc,clientdata);
@@ -531,6 +535,12 @@ static swig_type_info *swig_types[12];
531
535
  #define SWIG_name "Text"
532
536
 
533
537
 
538
+ static void SWIG_AsVal(VALUE obj, int *val)
539
+ {
540
+ *val = (int) NUM2INT(obj);
541
+ }
542
+
543
+
534
544
  #include "FXRbCommon.h"
535
545
 
536
546
 
@@ -86,13 +86,16 @@ private:
86
86
 
87
87
  #ifdef __cplusplus
88
88
  # ifndef RUBY_METHOD_FUNC /* These definitions should work for Ruby 1.4.6 */
89
+ # define PROTECTFUNC(f) ((VALUE (*)()) f)
89
90
  # define VALUEFUNC(f) ((VALUE (*)()) f)
90
91
  # define VOIDFUNC(f) ((void (*)()) f)
91
92
  # else
92
93
  # ifndef ANYARGS /* These definitions should work for Ruby 1.6 */
94
+ # define PROTECTFUNC(f) ((VALUE (*)()) f)
93
95
  # define VALUEFUNC(f) ((VALUE (*)()) f)
94
96
  # define VOIDFUNC(f) ((RUBY_DATA_FUNC) f)
95
- # else /* These definitions should work for Ruby 1.7 */
97
+ # else /* These definitions should work for Ruby 1.7+ */
98
+ # define PROTECTFUNC(f) ((VALUE (*)(VALUE)) f)
96
99
  # define VALUEFUNC(f) ((VALUE (*)(ANYARGS)) f)
97
100
  # define VOIDFUNC(f) ((RUBY_DATA_FUNC) f)
98
101
  # endif
@@ -265,13 +268,14 @@ SWIGIMPORT(char *) SWIG_UnpackData(char *, void *, int);
265
268
  #else
266
269
 
267
270
  static swig_type_info *swig_type_list = 0;
271
+ static swig_type_info **swig_type_list_handle = &swig_type_list;
268
272
 
269
273
  /* Register a type mapping with the type-checking */
270
274
  SWIGRUNTIME(swig_type_info *)
271
275
  SWIG_TypeRegister(swig_type_info *ti) {
272
276
  swig_type_info *tc, *head, *ret, *next;
273
277
  /* Check to see if this type has already been registered */
274
- tc = swig_type_list;
278
+ tc = *swig_type_list_handle;
275
279
  while (tc) {
276
280
  if (strcmp(tc->name, ti->name) == 0) {
277
281
  /* Already exists in the table. Just add additional types to the list */
@@ -286,8 +290,8 @@ SWIG_TypeRegister(swig_type_info *ti) {
286
290
  next = 0;
287
291
 
288
292
  /* Place in list */
289
- ti->prev = swig_type_list;
290
- swig_type_list = ti;
293
+ ti->prev = *swig_type_list_handle;
294
+ *swig_type_list_handle = ti;
291
295
 
292
296
  /* Build linked lists */
293
297
  l1:
@@ -416,7 +420,7 @@ SWIG_TypeEquiv(const char *nb, const char *tb) {
416
420
  /* Search for a swig_type_info structure */
417
421
  SWIGRUNTIME(swig_type_info *)
418
422
  SWIG_TypeQuery(const char *name) {
419
- swig_type_info *ty = swig_type_list;
423
+ swig_type_info *ty = *swig_type_list_handle;
420
424
  while (ty) {
421
425
  if (ty->str && (SWIG_TypeEquiv(ty->str,name))) return ty;
422
426
  if (ty->name && (strcmp(name,ty->name) == 0)) return ty;
@@ -434,7 +438,7 @@ SWIG_TypeClientData(swig_type_info *ti, void *clientdata) {
434
438
  equiv = ti->next;
435
439
  while (equiv) {
436
440
  if (!equiv->converter) {
437
- tc = swig_type_list;
441
+ tc = *swig_type_list_handle;
438
442
  while (tc) {
439
443
  if ((strcmp(tc->name, equiv->name) == 0))
440
444
  SWIG_TypeClientData(tc,clientdata);
@@ -538,6 +542,12 @@ static swig_type_info *swig_types[19];
538
542
  #define SWIG_name "Treelist"
539
543
 
540
544
 
545
+ static void SWIG_AsVal(VALUE obj, int *val)
546
+ {
547
+ *val = (int) NUM2INT(obj);
548
+ }
549
+
550
+
541
551
  #include "FXRbCommon.h"
542
552
 
543
553
 
@@ -86,13 +86,16 @@ private:
86
86
 
87
87
  #ifdef __cplusplus
88
88
  # ifndef RUBY_METHOD_FUNC /* These definitions should work for Ruby 1.4.6 */
89
+ # define PROTECTFUNC(f) ((VALUE (*)()) f)
89
90
  # define VALUEFUNC(f) ((VALUE (*)()) f)
90
91
  # define VOIDFUNC(f) ((void (*)()) f)
91
92
  # else
92
93
  # ifndef ANYARGS /* These definitions should work for Ruby 1.6 */
94
+ # define PROTECTFUNC(f) ((VALUE (*)()) f)
93
95
  # define VALUEFUNC(f) ((VALUE (*)()) f)
94
96
  # define VOIDFUNC(f) ((RUBY_DATA_FUNC) f)
95
- # else /* These definitions should work for Ruby 1.7 */
97
+ # else /* These definitions should work for Ruby 1.7+ */
98
+ # define PROTECTFUNC(f) ((VALUE (*)(VALUE)) f)
96
99
  # define VALUEFUNC(f) ((VALUE (*)(ANYARGS)) f)
97
100
  # define VOIDFUNC(f) ((RUBY_DATA_FUNC) f)
98
101
  # endif
@@ -265,13 +268,14 @@ SWIGIMPORT(char *) SWIG_UnpackData(char *, void *, int);
265
268
  #else
266
269
 
267
270
  static swig_type_info *swig_type_list = 0;
271
+ static swig_type_info **swig_type_list_handle = &swig_type_list;
268
272
 
269
273
  /* Register a type mapping with the type-checking */
270
274
  SWIGRUNTIME(swig_type_info *)
271
275
  SWIG_TypeRegister(swig_type_info *ti) {
272
276
  swig_type_info *tc, *head, *ret, *next;
273
277
  /* Check to see if this type has already been registered */
274
- tc = swig_type_list;
278
+ tc = *swig_type_list_handle;
275
279
  while (tc) {
276
280
  if (strcmp(tc->name, ti->name) == 0) {
277
281
  /* Already exists in the table. Just add additional types to the list */
@@ -286,8 +290,8 @@ SWIG_TypeRegister(swig_type_info *ti) {
286
290
  next = 0;
287
291
 
288
292
  /* Place in list */
289
- ti->prev = swig_type_list;
290
- swig_type_list = ti;
293
+ ti->prev = *swig_type_list_handle;
294
+ *swig_type_list_handle = ti;
291
295
 
292
296
  /* Build linked lists */
293
297
  l1:
@@ -416,7 +420,7 @@ SWIG_TypeEquiv(const char *nb, const char *tb) {
416
420
  /* Search for a swig_type_info structure */
417
421
  SWIGRUNTIME(swig_type_info *)
418
422
  SWIG_TypeQuery(const char *name) {
419
- swig_type_info *ty = swig_type_list;
423
+ swig_type_info *ty = *swig_type_list_handle;
420
424
  while (ty) {
421
425
  if (ty->str && (SWIG_TypeEquiv(ty->str,name))) return ty;
422
426
  if (ty->name && (strcmp(name,ty->name) == 0)) return ty;
@@ -434,7 +438,7 @@ SWIG_TypeClientData(swig_type_info *ti, void *clientdata) {
434
438
  equiv = ti->next;
435
439
  while (equiv) {
436
440
  if (!equiv->converter) {
437
- tc = swig_type_list;
441
+ tc = *swig_type_list_handle;
438
442
  while (tc) {
439
443
  if ((strcmp(tc->name, equiv->name) == 0))
440
444
  SWIG_TypeClientData(tc,clientdata);
@@ -560,6 +564,12 @@ static swig_type_info *swig_types[41];
560
564
  #define SWIG_name "Ui"
561
565
 
562
566
 
567
+ static void SWIG_AsVal(VALUE obj, int *val)
568
+ {
569
+ *val = (int) NUM2INT(obj);
570
+ }
571
+
572
+
563
573
  #include "FXRbCommon.h"
564
574
 
565
575
 
data/lib/fox12/aliases.rb CHANGED
@@ -152,6 +152,9 @@ module Fox
152
152
  def menuPause=(*args) # :nodoc:
153
153
  setMenuPause(*args)
154
154
  end
155
+ def tooltipPause # :nodoc:
156
+ getTooltipPause()
157
+ end
155
158
  def tooltipPause=(*args) # :nodoc:
156
159
  setTooltipPause(*args)
157
160
  end
@@ -1050,6 +1053,9 @@ module Fox
1050
1053
  def filename(*args) # :nodoc:
1051
1054
  getFilename(*args)
1052
1055
  end
1056
+ def filenames # :nodoc:
1057
+ getFilenames()
1058
+ end
1053
1059
  def pattern=(*args) # :nodoc:
1054
1060
  setPattern(*args)
1055
1061
  end
@@ -2048,7 +2054,7 @@ module Fox
2048
2054
  getJustify()
2049
2055
  end
2050
2056
  def justification=(j) # :nodoc:
2051
- setJustification(j)
2057
+ setJustify(j)
2052
2058
  end
2053
2059
  def iconPosition # :nodoc:
2054
2060
  getIconPosition()
@@ -3297,7 +3303,7 @@ module Fox
3297
3303
  getSelBackColor()
3298
3304
  end
3299
3305
  def selBackColor=(clr) # :nodoc:
3300
- setSelBackColor()
3306
+ setSelBackColor(clr)
3301
3307
  end
3302
3308
  def selTextColor() # :nodoc:
3303
3309
  getSelTextColor()
@@ -3711,7 +3717,7 @@ module Fox
3711
3717
  getSelBackColor()
3712
3718
  end
3713
3719
  def selBackColor=(clr) # :nodoc:
3714
- setSelBackColor()
3720
+ setSelBackColor(clr)
3715
3721
  end
3716
3722
  def selTextColor() # :nodoc:
3717
3723
  getSelTextColor()
@@ -4045,6 +4051,12 @@ module Fox
4045
4051
  def defRowHeight(*args) # :nodoc:
4046
4052
  getDefRowHeight(*args)
4047
4053
  end
4054
+ def minRowHeight(r) # :nodoc:
4055
+ getMinRowHeight(r)
4056
+ end
4057
+ def minColumnWidth(c) # :nodoc:
4058
+ getMinColumnWidth(c)
4059
+ end
4048
4060
  def currentRow(*args) # :nodoc:
4049
4061
  getCurrentRow(*args)
4050
4062
  end
@@ -4069,6 +4081,15 @@ module Fox
4069
4081
  def selEndColumn # :nodoc:
4070
4082
  getSelEndColumn()
4071
4083
  end
4084
+ def rowSelected?(r) # :nodoc:
4085
+ isRowSelected(r)
4086
+ end
4087
+ def columnSelected?(c) # :nodoc:
4088
+ isColumnSelected(c)
4089
+ end
4090
+ def anythingSelected? # :nodoc:
4091
+ isAnythingSelected
4092
+ end
4072
4093
  def font=(*args) # :nodoc:
4073
4094
  setFont(*args)
4074
4095
  end
@@ -4359,17 +4380,17 @@ module Fox
4359
4380
  def textStyle(*args) # :nodoc:
4360
4381
  getTextStyle(*args)
4361
4382
  end
4362
- def visRows=(*args) # :nodoc:
4363
- setVisRows(*args)
4383
+ def visibleRows=(*args) # :nodoc:
4384
+ setVisibleRows(*args)
4364
4385
  end
4365
- def visRows(*args) # :nodoc:
4366
- getVisRows(*args)
4386
+ def visibleRows(*args) # :nodoc:
4387
+ getVisibleRows(*args)
4367
4388
  end
4368
- def visCols=(*args) # :nodoc:
4369
- setVisCols(*args)
4389
+ def visibleColumns=(*args) # :nodoc:
4390
+ setVisibleColumns(*args)
4370
4391
  end
4371
- def visCols(*args) # :nodoc:
4372
- getVisCols(*args)
4392
+ def visibleColumns(*args) # :nodoc:
4393
+ getVisibleColumns(*args)
4373
4394
  end
4374
4395
  def hiliteMatchTime=(*args) # :nodoc:
4375
4396
  setHiliteMatchTime(*args)
@@ -0,0 +1,72 @@
1
+ module Fox
2
+ # Module to include in FXDialogBox to provide an easy nonmodal version
3
+ # of execute.
4
+ module FTNonModal
5
+ include Responder
6
+
7
+ def initialize(*args)
8
+ super if defined?(super)
9
+ FXMAPFUNC(SEL_COMMAND, FXDialogBox::ID_CANCEL, :onCmdCancel)
10
+ FXMAPFUNC(SEL_COMMAND, FXDialogBox::ID_ACCEPT, :onCmdAccept)
11
+ end
12
+
13
+ #
14
+ # Creates and shows the dialog, and registers the associated block to be
15
+ # called when the dialog is closed. The block is passed a boolean argument
16
+ # which is true if and only if the dialog was accepted.
17
+ #
18
+ # For example:
19
+ #
20
+ # dialogBox.execute_modal do |accepted|
21
+ # if accepted
22
+ # puts "Dialog accepted"
23
+ # else
24
+ # puts "Dialog cancelled"
25
+ # end
26
+ #
27
+ def execute_modal(placement = PLACEMENT_CURSOR, &block)
28
+ @__FTNonModal_block = block
29
+ execute(placement)
30
+ end
31
+
32
+ #
33
+ # Creates and shows the dialog, and registers the associated block to be
34
+ # called when the dialog is closed. The block is passed a boolean argument
35
+ # which is true if and only if the dialog was accepted.
36
+ #
37
+ # For example:
38
+ #
39
+ # dialogBox.execute_nonmodal do |accepted|
40
+ # if accepted
41
+ # puts "Dialog accepted"
42
+ # else
43
+ # puts "Dialog cancelled"
44
+ # end
45
+ #
46
+ def execute_nonmodal(placement = PLACEMENT_CURSOR, &block)
47
+ @__FTNonModal_block = block
48
+ create
49
+ show placement
50
+ end
51
+
52
+ def onCmdCancel(*args) # :nodoc:
53
+ on_nonmodal_close(false)
54
+ end
55
+
56
+ def onCmdAccept(*args) # :nodoc:
57
+ on_nonmodal_close(true)
58
+ end
59
+
60
+ # Called when dialog is closed, with _accepted_ equal to true if and only if
61
+ # the user accepted the dialog.
62
+ def on_nonmodal_close(accepted)
63
+ @__FTNonModal_block[accepted]
64
+
65
+ ##return 0 -- why isn't this enough to close window?
66
+ ## oh well, let's immitate FXTopWindow:
67
+ getApp().stopModal(self, accepted ? 1 : 0)
68
+ hide()
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,70 @@
1
+ module Fox
2
+ # Module to include in FXDialogBox to provide an easy nonmodal version
3
+ # of execute.
4
+ module FTNonModal
5
+
6
+ def initialize(*args)
7
+ super if defined?(super)
8
+ FXMAPFUNC(SEL_COMMAND, FXDialogBox::ID_CANCEL, :onCmdCancel)
9
+ FXMAPFUNC(SEL_COMMAND, FXDialogBox::ID_ACCEPT, :onCmdAccept)
10
+ end
11
+
12
+ #
13
+ # Creates and shows the dialog, and registers the associated block to be
14
+ # called when the dialog is closed. The block is passed a boolean argument
15
+ # which is true if and only if the dialog was accepted.
16
+ #
17
+ # For example:
18
+ #
19
+ # dialogBox.execute_modal do |accepted|
20
+ # if accepted
21
+ # puts "Dialog accepted"
22
+ # else
23
+ # puts "Dialog cancelled"
24
+ # end
25
+ #
26
+ def execute_modal(placement = PLACEMENT_CURSOR, &block)
27
+ @__FTNonModal_block = block
28
+ execute(placement)
29
+ end
30
+
31
+ #
32
+ # Creates and shows the dialog, and registers the associated block to be
33
+ # called when the dialog is closed. The block is passed a boolean argument
34
+ # which is true if and only if the dialog was accepted.
35
+ #
36
+ # For example:
37
+ #
38
+ # dialogBox.execute_nonmodal do |accepted|
39
+ # if accepted
40
+ # puts "Dialog accepted"
41
+ # else
42
+ # puts "Dialog cancelled"
43
+ # end
44
+ #
45
+ def execute_nonmodal(placement = PLACEMENT_CURSOR, &block)
46
+ @__FTNonModal_block = block
47
+ create
48
+ show placement
49
+ end
50
+
51
+ def onCmdCancel(*args) # :nodoc:
52
+ on_nonmodal_close(false)
53
+ end
54
+
55
+ def onCmdAccept(*args) # :nodoc:
56
+ on_nonmodal_close(true)
57
+ end
58
+
59
+ # Called when dialog is closed, with _accepted_ equal to +true+ if and
60
+ # only if the user accepted the dialog.
61
+ def on_nonmodal_close(accepted)
62
+ @__FTNonModal_block[accepted]
63
+
64
+ ##return 0 -- why isn't this enough to close window?
65
+ ## oh well, let's imitate FXTopWindow:
66
+ getApp().stopModal(self, accepted ? 1 : 0)
67
+ hide()
68
+ end
69
+ end
70
+ end
@@ -27,7 +27,7 @@ module Fox
27
27
  #
28
28
  def each # :yields: aHeaderItem
29
29
  0.upto(numItems - 1) do |i|
30
- yield retrieveItem(i)
30
+ yield getItem(i)
31
31
  end
32
32
  self
33
33
  end
@@ -43,7 +43,7 @@ module Fox
43
43
  #
44
44
  def each # :yields: anIconItem
45
45
  0.upto(numItems - 1) do |i|
46
- yield retrieveItem(i)
46
+ yield getItem(i)
47
47
  end
48
48
  self
49
49
  end
@@ -59,7 +59,7 @@ module Fox
59
59
  #
60
60
  def each # :yields: aListItem
61
61
  0.upto(numItems - 1) do |i|
62
- yield retrieveItem(i)
62
+ yield getItem(i)
63
63
  end
64
64
  self
65
65
  end
@@ -0,0 +1,83 @@
1
+ #
2
+ # Splashscreen component, contributed by David Naseby.
3
+ #
4
+
5
+ require 'fox12'
6
+ require 'fox12/colors'
7
+
8
+ module Fox
9
+ #
10
+ # The FXSplashScreen window...
11
+ #
12
+ class FXSplashScreen < FXDialogBox
13
+
14
+ #
15
+ # Return an initialized FXSplashScreen instance.
16
+ #
17
+ # ==== Parameters:
18
+ #
19
+ # +owner+:: Owner window for this dialog box [FXWindow]
20
+ # +title+:: Title string for this dialog box [String]
21
+ # +text+:: Message text for this dialog box [String]
22
+ # +action+:: The action
23
+ #
24
+ def initialize( owner, title, text, action )
25
+ # Initialize the base class first
26
+ super(owner, title)
27
+
28
+ # Store the action block
29
+ @action = action
30
+
31
+ # Construct the window contents
32
+ FXVerticalFrame.new( self ) do |frame|
33
+ text.each_line do |line|
34
+ FXLabel.new( frame, line.strip )
35
+ end
36
+ FXLabel.new( frame, "Click OK to continue (this may take a few moments)...." )
37
+ @status = FXLabel.new( frame, " " )
38
+ @accept = FXButton.new( frame, "&OK", nil, self, ID_ACCEPT,
39
+ FRAME_RAISED|FRAME_THICK|LAYOUT_RIGHT|LAYOUT_CENTER_Y)
40
+ @accept.enabled = false
41
+ end
42
+ end
43
+
44
+ def execute(placement = PLACEMENT_OWNER)
45
+ Thread.new do
46
+ sleep 1
47
+ @action.call method( :update_status )
48
+ update_status "Completed"
49
+ @accept.enabled = true
50
+ end
51
+ super
52
+ end
53
+
54
+ def update_status(msg)
55
+ @status.text = msg
56
+ end
57
+ end
58
+ end
59
+
60
+ if $0 == __FILE__
61
+ class FakeSite
62
+ def open( &status )
63
+ yield ">>>>> Opening Site" if block_given?
64
+ sleep 5
65
+ yield "site open" if block_given?
66
+ end
67
+ end
68
+ fake_site = FakeSite.new
69
+
70
+ include Fox
71
+
72
+ FXApp.new( "Test SplashScreen" ) do |theApp|
73
+ FXMainWindow.new( theApp, "Hello" ) do |mainWin|
74
+ FXButton.new( mainWin, "Show Splash" ).connect( SEL_COMMAND ) do
75
+ lv = FXSplashScreen.new( mainWin, "Opening Site", "Welcome to Sitebuilder!\nOpening the site.\n", lambda{ |proc| fake_site.open( &proc ) } )
76
+ lv.execute
77
+ end
78
+ mainWin.show
79
+ end
80
+ theApp.create
81
+ theApp.run
82
+ end
83
+ end
data/lib/fox12/version.rb CHANGED
@@ -5,7 +5,7 @@ module Fox
5
5
  # Returns the FXRuby version number as a string, e.g. "1.0.19".
6
6
  #
7
7
  def Fox.fxrubyversion
8
- "1.2.2"
8
+ "1.2.3"
9
9
  end
10
10
  end
11
11
 
data/rdoc-sources/FXDC.rb CHANGED
@@ -35,7 +35,7 @@ module Fox
35
35
  # Start of the arc, relative to the three-o'clock position from the center, in units of degrees * 64 [Integer]
36
36
  attr_accessor :a
37
37
 
38
- # End of the arc, relative to the three-o'clock position from the center, in units of degrees * 64 [Integer]
38
+ # Path and extent of the arc, relative to the three-o'clock position from the center, in units of degrees * 64 [Integer]
39
39
  attr_accessor :b
40
40
  end
41
41
 
@@ -324,12 +324,13 @@ module Fox
324
324
  def drawRectangles(rectangles) ; end
325
325
 
326
326
  #
327
- # Draw arcs.
328
- # The argument <em>angle1</em> specifies the start of the arc relative to the
329
- # three-o'clock position from the center, in units of degrees*64.
330
- # The argument <em>angle2</em> specifies the path and extent of the arc relative
331
- # to the start of the arc, in units of degrees*64.
332
- # The arguments _x_, _y_, _w_, and _h_ specify the bounding rectangle.
327
+ # Draw an arc.
328
+ # The argument <em>start</em> specifies the start of the arc relative to
329
+ # the three-o'clock position from the center, in units of degrees*64.
330
+ # The argument <em>extent</em> specifies the path and extent of the arc,
331
+ # relative to the start of the arc (also in units of degrees*64).
332
+ # The arguments _x_, _y_, _w_, and _h_ specify the bounding rectangle
333
+ # of the arc.
333
334
  #
334
335
  # === Parameters:
335
336
  #
@@ -337,12 +338,12 @@ module Fox
337
338
  # <tt>y</tt>:: y-coordinate of the upper left corner of the bounding rectangle [Integer]
338
339
  # <tt>w</tt>:: width of the bounding rectangle, in pixels [Integer]
339
340
  # <tt>h</tt>:: height of the bounding rectangle, in pixels [Integer]
340
- # <tt>angle1</tt>:: starting angle of the arc, in 64ths of a degree [Integer]
341
- # <tt>angle2</tt>:: ending angle of the arc, in 64ths of a degree [Integer]
341
+ # <tt>start</tt>:: starting angle of the arc, in 64ths of a degree [Integer]
342
+ # <tt>extent</tt>:: the path and extent of the arc, relative to the start of the arc (in 64ths of a degree) [Integer]
342
343
  #
343
344
  # See also #drawArcs, #fillArc and #fillArcs.
344
345
  #
345
- def drawArc(x, y, w, h, angle1, angle2) ; end
346
+ def drawArc(x, y, w, h, start, extent) ; end
346
347
 
347
348
  #
348
349
  # Draw arcs, where _arcs_ is an array of FXArc instances.
@@ -392,12 +393,12 @@ module Fox
392
393
  # <tt>y</tt>:: y-coordinate of the upper left corner of the bounding rectangle [Integer]
393
394
  # <tt>w</tt>:: width of the bounding rectangle, in pixels [Integer]
394
395
  # <tt>h</tt>:: height of the bounding rectangle, in pixels [Integer]
395
- # <tt>angle1</tt>:: starting angle of the arc, in 64ths of a degree [Integer]
396
- # <tt>angle2</tt>:: ending angle of the arc, in 64ths of a degree [Integer]
396
+ # <tt>start</tt>:: starting angle of the arc, in 64ths of a degree [Integer]
397
+ # <tt>extent</tt>:: the path and extent of the arc, relative to the start of the arc (in 64ths of a degree) [Integer]
397
398
  #
398
399
  # See also #drawArc, #drawArcs and #fillArcs.
399
400
  #
400
- def fillArc(x, y, w, h, angle1, angle2) ; end
401
+ def fillArc(x, y, w, h, start, extent) ; end
401
402
 
402
403
  #
403
404
  # Draw filled arcs, where _arcs_ is an array of FXArc instances.