fxruby 1.4.1 → 1.4.2
Sign up to get free protection for your applications and to get access to all the features.
- data/doc/apes02.html +2 -2
- data/doc/apes03.html +1 -1
- data/doc/book.html +1 -1
- data/doc/changes.html +36 -9
- data/doc/cvs.html +2 -2
- data/doc/differences.html +3 -3
- data/doc/implementation.html +1 -1
- data/doc/library.html +5 -5
- data/doc/opengl.html +5 -5
- data/doc/pt02.html +1 -1
- data/doc/scintilla.html +4 -4
- data/examples/groupbox.rb +1 -1
- data/examples/iconlist.rb +0 -15
- data/examples/imageviewer.rb +24 -28
- data/examples/textedit/commands.rb +4 -1
- data/examples/textedit/helpwindow.rb +6 -2
- data/examples/textedit/prefdialog.rb +4 -0
- data/examples/textedit/textedit.rb +17 -16
- data/ext/fox14/FXRuby.cpp +6 -2
- data/ext/fox14/core_wrap.cpp +58 -22
- data/ext/fox14/iconlist_wrap.cpp +7 -11
- data/ext/fox14/menu_wrap.cpp +26 -4
- data/ext/fox14/treelist_wrap.cpp +7 -11
- data/lib/fox14/aliases.rb +53 -33
- data/lib/fox14/core.rb +86 -0
- data/lib/fox14/version.rb +1 -1
- data/rdoc-sources/FXCheckButton.rb +0 -15
- data/rdoc-sources/FXDC.rb +1 -1
- data/rdoc-sources/FXDockSite.rb +13 -13
- data/rdoc-sources/FXFont.rb +8 -1
- data/rdoc-sources/FXImage.rb +0 -2
- data/rdoc-sources/FXScrollArea.rb +4 -4
- data/rdoc-sources/FXStream.rb +19 -1
- data/rdoc-sources/FXTable.rb +0 -12
- data/rdoc-sources/FXTopWindow.rb +37 -12
- data/rdoc-sources/FXTreeList.rb +1 -5
- data/tests/TC_FXFont.rb +10 -0
- data/tests/TC_FXMenuCheck.rb +57 -0
- data/tests/TC_FXMenuRadio.rb +57 -0
- data/tests/TC_FXSettings.rb +34 -0
- metadata +5 -2
data/lib/fox14/core.rb
CHANGED
@@ -23,18 +23,36 @@ module Fox
|
|
23
23
|
warn "addItemFirst() is deprecated; use prependItem() instead"
|
24
24
|
prependItem(*args)
|
25
25
|
end
|
26
|
+
|
26
27
|
def addItemLast(*args) # :nodoc:
|
27
28
|
warn "addItemLast() is deprecated; use appendItem() instead"
|
28
29
|
appendItem(*args)
|
29
30
|
end
|
31
|
+
|
30
32
|
def addItemAfter(other, *args) # :nodoc:
|
31
33
|
warn "addItemAfter() is deprecated; use insertItem() instead"
|
32
34
|
insertItem(other.next, other.parent, *args)
|
33
35
|
end
|
36
|
+
|
34
37
|
def addItemBefore(other, *args) # :nodoc:
|
35
38
|
warn "addItemBefore() is deprecated; use insertItem() instead"
|
36
39
|
insertItem(other, other.parent, *args)
|
37
40
|
end
|
41
|
+
|
42
|
+
def reparentItem(item, father) # :nodoc:
|
43
|
+
warn "reparentItem() is deprecated; use moveItem() instead"
|
44
|
+
moveItem(nil, father, item)
|
45
|
+
end
|
46
|
+
|
47
|
+
def moveItemBefore(other, item) # :nodoc:
|
48
|
+
warn "moveItemBefore() is deprecated; use moveItem() instead"
|
49
|
+
moveItem(other, other.parent, item)
|
50
|
+
end
|
51
|
+
|
52
|
+
def moveItemAfter(other, item) # :nodoc:
|
53
|
+
warn "moveItemAfter() is deprecated; use moveItem() instead"
|
54
|
+
moveItem(other.next, other.parent, item)
|
55
|
+
end
|
38
56
|
end
|
39
57
|
|
40
58
|
class FXTreeListBox
|
@@ -323,6 +341,74 @@ module Fox
|
|
323
341
|
# General failure
|
324
342
|
class FXStreamFailureError < FXStreamError ; end
|
325
343
|
|
344
|
+
class FXCheckButton
|
345
|
+
# Return +true+ if this check button is in the checked state.
|
346
|
+
def checked?
|
347
|
+
self.checkState == TRUE
|
348
|
+
end
|
349
|
+
|
350
|
+
# Return +true+ if this check button is in the unchecked state.
|
351
|
+
def unchecked?
|
352
|
+
self.checkState == FALSE
|
353
|
+
end
|
354
|
+
|
355
|
+
# Return +true+ if this check button is in the indeterminate, or "maybe", state.
|
356
|
+
def maybe?
|
357
|
+
self.checkState == MAYBE
|
358
|
+
end
|
359
|
+
end
|
360
|
+
|
361
|
+
class FXMenuCheck
|
362
|
+
# Return +true+ if this menu check button is in the checked state.
|
363
|
+
def checked?
|
364
|
+
self.checkState == TRUE
|
365
|
+
end
|
366
|
+
|
367
|
+
# Return +true+ if this menu check button is in the unchecked state.
|
368
|
+
def unchecked?
|
369
|
+
self.checkState == FALSE
|
370
|
+
end
|
371
|
+
|
372
|
+
# Return +true+ if this menu check button is in the indeterminate, or "maybe", state.
|
373
|
+
def maybe?
|
374
|
+
self.checkState == MAYBE
|
375
|
+
end
|
376
|
+
end
|
377
|
+
|
378
|
+
class FXRadioButton
|
379
|
+
# Return +true+ if this radio button is in the checked state.
|
380
|
+
def checked?
|
381
|
+
self.checkState == TRUE
|
382
|
+
end
|
383
|
+
|
384
|
+
# Return +true+ if this radio button is in the unchecked state.
|
385
|
+
def unchecked?
|
386
|
+
self.checkState == FALSE
|
387
|
+
end
|
388
|
+
|
389
|
+
# Return +true+ if this radio button is in the indeterminate, or "maybe", state.
|
390
|
+
def maybe?
|
391
|
+
self.checkState == MAYBE
|
392
|
+
end
|
393
|
+
end
|
394
|
+
|
395
|
+
class FXMenuRadio
|
396
|
+
# Return +true+ if this menu radio button is in the checked state.
|
397
|
+
def checked?
|
398
|
+
self.checkState == TRUE
|
399
|
+
end
|
400
|
+
|
401
|
+
# Return +true+ if this menu radio button is in the unchecked state.
|
402
|
+
def unchecked?
|
403
|
+
self.checkState == FALSE
|
404
|
+
end
|
405
|
+
|
406
|
+
# Return +true+ if this menu radio button is in the indeterminate, or "maybe", state.
|
407
|
+
def maybe?
|
408
|
+
self.checkState == MAYBE
|
409
|
+
end
|
410
|
+
end
|
411
|
+
|
326
412
|
class FXDC
|
327
413
|
#
|
328
414
|
# Draw a circle centered at (_x_, _y_), with specified radius.
|
data/lib/fox14/version.rb
CHANGED
@@ -47,20 +47,5 @@ module Fox
|
|
47
47
|
# Construct new check button
|
48
48
|
def initialize(parent, text, target=nil, selector=0, opts=CHECKBUTTON_NORMAL, x=0, y=0, width=0, height=0, padLeft=DEFAULT_PAD, padRight=DEFAULT_PAD, padTop=DEFAULT_PAD, padBottom=DEFAULT_PAD) # :yields: theCheckButton
|
49
49
|
end
|
50
|
-
|
51
|
-
# Return +true+ if the check button state is +TRUE+
|
52
|
-
def checked?
|
53
|
-
self.check == TRUE
|
54
|
-
end
|
55
|
-
|
56
|
-
# Return +true+ if the check button state is +FALSE+
|
57
|
-
def unchecked?
|
58
|
-
self.check == FALSE
|
59
|
-
end
|
60
|
-
|
61
|
-
# Return +true+ if the check button state is +MAYBE+
|
62
|
-
def maybe?
|
63
|
-
self.check == MAYBE
|
64
|
-
end
|
65
50
|
end
|
66
51
|
end
|
data/rdoc-sources/FXDC.rb
CHANGED
data/rdoc-sources/FXDockSite.rb
CHANGED
@@ -4,28 +4,28 @@ module Fox
|
|
4
4
|
# Dock site widgets are typically embedded inside the main window, placed
|
5
5
|
# against those sides where docking of toolbars is to be allowed.
|
6
6
|
# Dock bars placed inside a dock site are laid out in horizontal or vertical bands
|
7
|
-
# called
|
8
|
-
# on the same galley as its previous sibling.
|
7
|
+
# called _galleys_. A toolbar with the +LAYOUT_DOCK_SAME+ hint is preferentially placed
|
8
|
+
# on the same galley as its previous sibling. A dock bar with the +LAYOUT_DOCK_NEXT+ is
|
9
9
|
# always placed on the next galley.
|
10
|
-
# Each galley will have at least one dock bar shown in it.
|
10
|
+
# Each galley will have at least one dock bar shown in it. Several dock bars
|
11
11
|
# may be placed side-by-side inside one galley, unless there is insufficient
|
12
|
-
# room.
|
13
|
-
# will be moved to the next galley, even though its LAYOUT_DOCK_NEXT option
|
14
|
-
# is not set.
|
12
|
+
# room. If there is insufficient room to place another dock bar, that dock bar
|
13
|
+
# will be moved to the next galley, even though its +LAYOUT_DOCK_NEXT+ option
|
14
|
+
# is not set. This implies that when the main window is resized, and more room
|
15
15
|
# becomes available, it will jump back to its preferred galley.
|
16
16
|
# Within a galley, dock bars will be placed from left to right, at the given
|
17
17
|
# x and y coordinates, with the constraints that the dock bar will stay within
|
18
|
-
# the galley, and do not overlap each other.
|
19
|
-
# and/or LAYOUT_FILL_Y to stretch a toolbar to the available space on its galley.
|
18
|
+
# the galley, and do not overlap each other. It is possible to use +LAYOUT_FILL_X+
|
19
|
+
# and/or +LAYOUT_FILL_Y+ to stretch a toolbar to the available space on its galley.
|
20
20
|
# The galleys are oriented horizontally if the dock site is placed inside
|
21
|
-
# a top level window using LAYOUT_SIDE_TOP or LAYOUT_SIDE_BOTTOM
|
22
|
-
# vertically oriented if placed with LAYOUT_SIDE_LEFT or LAYOUT_SIDE_RIGHT
|
21
|
+
# a top level window using +LAYOUT_SIDE_TOP+ or +LAYOUT_SIDE_BOTTOM+, and
|
22
|
+
# vertically oriented if placed with +LAYOUT_SIDE_LEFT+ or +LAYOUT_SIDE_RIGHT+.
|
23
23
|
#
|
24
24
|
class FXDockSite < FXPacker
|
25
25
|
#
|
26
|
-
# Construct a toolbar dock layout manager.
|
27
|
-
# causes the toolbar dock to be oriented horizontally.
|
28
|
-
# LAYOUT_SIDE_RIGHT causes it to be oriented vertically.
|
26
|
+
# Construct a toolbar dock layout manager. Passing +LAYOUT_SIDE_TOP+ or +LAYOUT_SIDE_BOTTOM+
|
27
|
+
# causes the toolbar dock to be oriented horizontally. Passing +LAYOUT_SIDE_LEFT+ or
|
28
|
+
# +LAYOUT_SIDE_RIGHT+ causes it to be oriented vertically.
|
29
29
|
#
|
30
30
|
def initialize(p, opts=0, x=0, y=0, w=0, h=0, pl=0, pr=0, pt=0, pb=0, hs=0, vs=0) # :yields: theDockSite
|
31
31
|
end
|
data/rdoc-sources/FXFont.rb
CHANGED
@@ -311,7 +311,14 @@ module Fox
|
|
311
311
|
def fontMono? ; end
|
312
312
|
|
313
313
|
#
|
314
|
-
# Return +true+ if font has glyph for _ch_.
|
314
|
+
# Return +true+ if font has glyph for _ch_. Here, _ch_ can either be an
|
315
|
+
# ordinal value, e.g.
|
316
|
+
#
|
317
|
+
# aFont.hasChar?(?a)
|
318
|
+
#
|
319
|
+
# or a string of length one (i.e. a single character), e.g.
|
320
|
+
#
|
321
|
+
# aFont.hasChar?('a')
|
315
322
|
#
|
316
323
|
def hasChar?(ch) ; end
|
317
324
|
|
data/rdoc-sources/FXImage.rb
CHANGED
@@ -44,11 +44,11 @@ module Fox
|
|
44
44
|
# Scroll style [Integer]
|
45
45
|
attr_accessor :scrollStyle
|
46
46
|
|
47
|
-
# Horizontal scrollbar [
|
48
|
-
attr_reader :
|
47
|
+
# Horizontal scrollbar [FXScrollBar]
|
48
|
+
attr_reader :horizontalScrollBar
|
49
49
|
|
50
|
-
# Vertical scrollbar [
|
51
|
-
attr_reader :
|
50
|
+
# Vertical scrollbar [FXScrollBar]
|
51
|
+
attr_reader :verticalScrollBar
|
52
52
|
|
53
53
|
# Current x-position [Integer]
|
54
54
|
attr_reader :xPosition
|
data/rdoc-sources/FXStream.rb
CHANGED
@@ -1,6 +1,24 @@
|
|
1
1
|
module Fox
|
2
2
|
#
|
3
|
-
#
|
3
|
+
# A stream is a way to serialize data and objects into a byte stream.
|
4
|
+
# Each item of data that is saved or loaded from the stream may be byte-swapped,
|
5
|
+
# thus allowing little-endian machines to read data produced on big endian ones
|
6
|
+
# and vice-versa.
|
7
|
+
# Data is serialized exactly as-is. There are no tags or other markers
|
8
|
+
# inserted into the stream; thus, the stream may be used to save or load arbitrary
|
9
|
+
# binary data.
|
10
|
+
# Objects derived from FXObjects may be serialized also; whenever a reference to an
|
11
|
+
# object is serialized, a table is consulted to determine if the same object has
|
12
|
+
# been encountered previously; if not, the object is added to the table and then
|
13
|
+
# its contents are serialized. If the object has been encountered before, only a
|
14
|
+
# reference to the object is serialized.
|
15
|
+
# When loading back a serialized object, new instances are constructed using
|
16
|
+
# the default constructor, and subsequently the object's contents are loaded.
|
17
|
+
# A special container object may be passed in which is placed in the table
|
18
|
+
# as if it had been encountered before; this will cause only references to this
|
19
|
+
# object to be saved. The container object is typically the top-level document
|
20
|
+
# object which manages all objects contained by it. Additional objects may be
|
21
|
+
# added using addObject(); these will not be actually saved or loaded.
|
4
22
|
#
|
5
23
|
# === Stream status codes
|
6
24
|
#
|
data/rdoc-sources/FXTable.rb
CHANGED
@@ -256,18 +256,6 @@ module Fox
|
|
256
256
|
# Table style [Integer]
|
257
257
|
attr_accessor :tableStyle
|
258
258
|
|
259
|
-
# Number of leading rows [Integer]
|
260
|
-
attr_accessor :leadingRows
|
261
|
-
|
262
|
-
# Number of trailing rows [Integer]
|
263
|
-
attr_accessor :trailingRows
|
264
|
-
|
265
|
-
# Number of leading columns [Integer]
|
266
|
-
attr_accessor :leadingCols
|
267
|
-
|
268
|
-
# Number of trailing columns [Integer]
|
269
|
-
attr_accessor :trailingCols
|
270
|
-
|
271
259
|
# The column header height mode is either fixed (LAYOUT_FIX_HEIGHT) or variable.
|
272
260
|
# In variable height mode, the column header will size to fit the contents in it.
|
273
261
|
# In fixed height mode, the size is explicitly set via the _columnHeaderHeight_
|
data/rdoc-sources/FXTopWindow.rb
CHANGED
@@ -18,6 +18,8 @@ module Fox
|
|
18
18
|
# +DECOR_MAXIMIZE+:: Maximize button
|
19
19
|
# +DECOR_CLOSE+:: Close button
|
20
20
|
# +DECOR_BORDER+:: Border
|
21
|
+
# +DECOR_SHRINKABLE+:: Window can become smaller
|
22
|
+
# +DECOR_STRETCHABLE+:: Window can become larger
|
21
23
|
# +DECOR_RESIZE+:: Resize handles
|
22
24
|
# +DECOR_MENU+:: Window menu
|
23
25
|
# +DECOR_ALL+:: All of the above
|
@@ -33,9 +35,12 @@ module Fox
|
|
33
35
|
#
|
34
36
|
# === Message identifiers
|
35
37
|
#
|
36
|
-
# +
|
37
|
-
# +
|
38
|
-
# +
|
38
|
+
# +ID_MAXIMIZE+:: Maximize the window
|
39
|
+
# +ID_MINIMIZE+:: Minimize the window
|
40
|
+
# +ID_RESTORE+:: Restore the window
|
41
|
+
# +ID_CLOSE+:: Close the window
|
42
|
+
# +ID_QUERY_DOCK+:: Toolbar asks to dock
|
43
|
+
#
|
39
44
|
|
40
45
|
class FXTopWindow < FXShell
|
41
46
|
|
@@ -83,14 +88,34 @@ module Fox
|
|
83
88
|
# Obtain border sizes added to our window by the window manager.
|
84
89
|
# Returns a 4-element array containing the left, right, top and bottom border sizes (in pixels).
|
85
90
|
def getWMBorders(); end
|
86
|
-
|
87
|
-
#
|
88
|
-
def
|
89
|
-
|
90
|
-
#
|
91
|
-
def
|
92
|
-
|
93
|
-
#
|
94
|
-
|
91
|
+
|
92
|
+
# Return +true+ if window is maximized.
|
93
|
+
def maximized? ; end
|
94
|
+
|
95
|
+
# Return +true+ if window is minimized.
|
96
|
+
def minimized? ; end
|
97
|
+
|
98
|
+
#
|
99
|
+
# Maximize window and return +true+ if maximized.
|
100
|
+
# If _notify_ is +true+, sends a +SEL_MAXIMIZE+ message to its message target.
|
101
|
+
#
|
102
|
+
def maximize(notify=false); end
|
103
|
+
|
104
|
+
#
|
105
|
+
# Minimize or iconify window and return +true+ if minimized.
|
106
|
+
# If _notify_ is +true+, sends a +SEL_MINIMIZE+ message to its message target.
|
107
|
+
#
|
108
|
+
def minimize(notify=false); end
|
109
|
+
|
110
|
+
#
|
111
|
+
# Restore window to normal and return +true+ if restored.
|
112
|
+
# If _notify_ is +true+, sends a +SEL_RESTORE+ message to its message target.
|
113
|
+
#
|
114
|
+
def restore(notify=false); end
|
115
|
+
|
116
|
+
#
|
117
|
+
# Close window and return +true+ if actually closed.
|
118
|
+
#
|
119
|
+
def close(notify=false); end
|
95
120
|
end
|
96
121
|
end
|
data/rdoc-sources/FXTreeList.rb
CHANGED
@@ -259,7 +259,6 @@ module Fox
|
|
259
259
|
# ==== Parameters:
|
260
260
|
#
|
261
261
|
# +p+:: the parent window for this tree list [FXComposite]
|
262
|
-
# +nvis+:: number of visible items [Integer]
|
263
262
|
# +tgt+:: the message target, if any, for this tree list [FXObject]
|
264
263
|
# +sel+:: the message identifier for this tree list [Integer]
|
265
264
|
# +opts+:: tree list options [Integer]
|
@@ -268,7 +267,7 @@ module Fox
|
|
268
267
|
# +w+:: initial width [Integer]
|
269
268
|
# +h+:: initial height [Integer]
|
270
269
|
#
|
271
|
-
def initialize(p,
|
270
|
+
def initialize(p, tgt=nil, sel=0, opts=TREELIST_NORMAL, x=0, y=0, w=0, h=0) # :yields: theTreeList
|
272
271
|
end
|
273
272
|
|
274
273
|
#
|
@@ -475,9 +474,6 @@ module Fox
|
|
475
474
|
# message target after the sub-tree is expanded.
|
476
475
|
def expandTree(tree, notify=false); end
|
477
476
|
|
478
|
-
# Reparent _item_ under _parentItem_.
|
479
|
-
def reparentItem(item, parentItem); end
|
480
|
-
|
481
477
|
#
|
482
478
|
# Change current item. If there is already a current item, that item
|
483
479
|
# is first closed. After _item_ is set as the tree list's current item,
|
data/tests/TC_FXFont.rb
CHANGED
@@ -56,4 +56,14 @@ class TC_FXFont < Test::Unit::TestCase
|
|
56
56
|
assert_instance_of(Array, fonts)
|
57
57
|
assert(fonts.length > 0)
|
58
58
|
end
|
59
|
+
|
60
|
+
def test_hasChar?
|
61
|
+
@app.normalFont.create
|
62
|
+
assert(@app.normalFont.hasChar('a'))
|
63
|
+
assert(@app.normalFont.hasChar(?a))
|
64
|
+
assert(@app.normalFont.hasChar?('a'))
|
65
|
+
assert(@app.normalFont.hasChar?(?a))
|
66
|
+
assert_raises(ArgumentError) { @app.normalFont.hasChar? "" }
|
67
|
+
assert_raises(ArgumentError) { @app.normalFont.hasChar? "ab" }
|
68
|
+
end
|
59
69
|
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'testcase'
|
3
|
+
require 'fox14'
|
4
|
+
|
5
|
+
include Fox
|
6
|
+
|
7
|
+
class TC_FXMenuCheck < TestCase
|
8
|
+
def setup
|
9
|
+
super(self.class.name)
|
10
|
+
@menuCheck = FXMenuCheck.new(mainWindow, "menuCheck")
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_setCheck_TRUE
|
14
|
+
@menuCheck.check = Fox::TRUE
|
15
|
+
assert_equal(true, @menuCheck.check)
|
16
|
+
assert_equal(Fox::TRUE, @menuCheck.checkState)
|
17
|
+
assert(@menuCheck.checked?)
|
18
|
+
assert(!@menuCheck.unchecked?)
|
19
|
+
assert(!@menuCheck.maybe?)
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_setCheck_FALSE
|
23
|
+
@menuCheck.check = Fox::FALSE
|
24
|
+
assert_equal(false, @menuCheck.check)
|
25
|
+
assert_equal(Fox::FALSE, @menuCheck.checkState)
|
26
|
+
assert(!@menuCheck.checked?)
|
27
|
+
assert(@menuCheck.unchecked?)
|
28
|
+
assert(!@menuCheck.maybe?)
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_setCheck_MAYBE
|
32
|
+
@menuCheck.check = Fox::MAYBE
|
33
|
+
assert_equal(true, @menuCheck.check) # this is not a typo!
|
34
|
+
assert_equal(Fox::MAYBE, @menuCheck.checkState)
|
35
|
+
assert(!@menuCheck.checked?)
|
36
|
+
assert(!@menuCheck.unchecked?)
|
37
|
+
assert(@menuCheck.maybe?)
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_setCheck_true
|
41
|
+
@menuCheck.check = true
|
42
|
+
assert_equal(true, @menuCheck.check)
|
43
|
+
assert_equal(Fox::TRUE, @menuCheck.checkState)
|
44
|
+
assert(@menuCheck.checked?)
|
45
|
+
assert(!@menuCheck.unchecked?)
|
46
|
+
assert(!@menuCheck.maybe?)
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_setCheck_false
|
50
|
+
@menuCheck.check = false
|
51
|
+
assert_equal(false, @menuCheck.check)
|
52
|
+
assert_equal(Fox::FALSE, @menuCheck.checkState)
|
53
|
+
assert(!@menuCheck.checked?)
|
54
|
+
assert(@menuCheck.unchecked?)
|
55
|
+
assert(!@menuCheck.maybe?)
|
56
|
+
end
|
57
|
+
end
|