This commit is contained in:
Jocelyn Fiat 2024-06-17 09:09:33 +02:00
commit 6dde6425c2
560 changed files with 81728 additions and 0 deletions

3
.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
.DS_Store
.*.swp
EIFGENs/

30
Problem Description.txt Normal file
View File

@ -0,0 +1,30 @@
This project has several problems for which I have no answer, so I'm turning to Eiffel Software for help. Notes about implementation follow the questions/problems.
I have problems with both Studio 20.05 and 22.05.
1a) In 20.05 it runs in workbench mode and if finalized keeping assertions. When finalized with assertions discarded get "feature call on Void target."
1b) In 22.05 seg faults in workbench mode and when finalized keeping assertions. When finalized with assertions discarded it runs. ??
2) Compilations seems extremely slow for descendants of VITP_WIDGET (e.g. ANDAMAN_ISLANDS_WIDGET, ATTU_WIDGET, ALEUTIAN_ISLANDS_WIDGET, etc.) BTW, all the xx_WIDGET classes should be named xx_MODEL, because they are descendants of EV_MODEL not EV_WIDGET; this is a holdover from years of work.
3) Getting CatCalls in EV_TOOL_BAR_RADIO_BUTTON_IMP.set_item_parent_imp?
4) Problem with pick-and-put. Run the program [in one of the modes that actually runs]. There is a window with two main sections: a map on the left and a set of three panels on the right. Right click on a red square near the top of the "Japanese Order of Appearance Chart". You can now drop the pebble on Yokosuka Navy Yard (Japan). When right clicking on a red square Japan should light up; it does not. The feature that highlights Japan is getting called, but the interface is not reacting to the change in color. To see what should happen, click on one of the red squares that happen to be on the map. Or, click on the yellow square that is over the word "Pacific" at the top-left of the map; this will highlight Japan, Saigon, and Truk. So this "highlighting" works if the pick-and-put begins in the same (i.e. the map) "window". This leads into the next issue.
5) Try to zoom in/out with the plus/minus buttons at the top of each tool. When zooming in, the scrollbars react but the content does not change until the mouse is moved into the view. Zooming out does not have that problem.
Implementation notes:
1) The main abstraction for the interface is VIEW, which is responsible for displaying its `target'. When a COMMAND or other actions changes an object, it can ask they system to update all the views that contain that target. For example, a red square is an ATTACK_UNIT_WIDGET which displays an ATTACK_UNIT. Each SEA_AREA and PORT in the map is also a VIEW.
2) The main window contains two TOOL objects. (A TOOL is a VIEW.) Each TOOL contains one or more views. Placement of the tools and views is performed by classes in the "jj_vision" cluster.
3) The pick-and-put features are in class VIEW. Near the bottom of the class are feature grouped in "Basic operations" (to be redefined in descendants) and "Agents and support".
4) The game is in two parts: Implementation and Interface

6
jj_containers/README.md Normal file
View File

@ -0,0 +1,6 @@
# jj_containers
This cluster of classes adds useful features to some of the base/elks containers. For example, features 'is\_all\_same' and 'is\_all\_different' are convinient for comparing items in a list.
Classes JJ\_ARRAYED\_STACK and JJ\_LINKED\_STACK grant access to any item in the stack, not just the top item.
Feature 'prune' removes the first occurrence starting from the beginning of a list instead of starting from the cursor position.

18
jj_containers/forum.txt Normal file
View File

@ -0,0 +1,18 @@
Eiffel Forum License, version 2
1. Permission is hereby granted to use, copy, modify and/or
distribute this package, provided that:
* copyright notices are retained unchanged,
* any distribution of this package, whether modified or not,
includes this license text.
2. Permission is hereby also granted to distribute binary programs
which depend on this package. If the binary program depends on a
modified version of this package, you are encouraged to publicly
release the modified version of this package.
THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT WARRANTY. ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE TO ANY PARTY FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THIS PACKAGE.

154
jj_containers/jj_array.e Normal file
View File

@ -0,0 +1,154 @@
note
description: "[
This class adds some useful features to the ARRAY class.
]"
author: "Jimmy J. Johnson"
date: "10/27/21"
copyright: "Copyright (c) 2021, Jimmy J. Johnson"
license: "Eiffel Forum v2 (http://www.eiffel.com/licensing/forum.txt)"
class
JJ_ARRAY [G]
inherit
ARRAY [G]
create
make,
make_filled,
make_from_array,
make_from_special,
make_from_cil
convert
to_cil: {NATIVE_ARRAY [G]},
to_special: {SPECIAL [G]},
make_from_cil ({NATIVE_ARRAY [G]})
feature -- Measurement
most_occuring_item: like item
-- The item in Current that occurs the most times.
-- If more than one item occurs the same most number of time, then
-- the then the first of those items.
require
not_empty: not is_empty
local
i, j: INTEGER_32
n, c: INTEGER_32
index: INTEGER_32
do
c := 0
n := 1
from i := 1
until i > count
loop
c := 1
from j := i + 1
until j > count
loop
if at (i) ~ at (j) then
c := c + 1
end
j := j + 1
end
if c > n then
index := i
end
i := i + 1
end
check
index_big_enough: index >= 1
end
check
index_small_enough: index <= count
end
Result := at (index)
end
unique_count: INTEGER_32
-- The number of items in Current that occur only once.
local
i, j: INTEGER_32
n: INTEGER_32
checked: ARRAYED_SET [like item]
duplicate_found: BOOLEAN
v: like item
do
create checked.make (count)
from i := 1
until i > count
loop
n := 1
v := at (i)
duplicate_found := False
if not checked.has (v) then
checked.extend (v)
from j := i + 1
until duplicate_found or else j > count
loop
if at (i) ~ at (j) then
duplicate_found := True
end
j := j + 1
end
end
if not duplicate_found then
Result := Result + 1
end
i := i + 1
end
ensure
result_large_enough: Result >= 0
result_small_enough: Result <= count
all_unique_implication:
end
feature -- Status report
is_all_same: BOOLEAN
-- Are all the elements in Current equivalent?
-- Uses object comparison to check sameness.
local
i: INTEGER
a: G
do
-- Simple check if all are same as the first
-- Assume true until finding a contradiction
a := at (1)
Result := True
from i := 2
until not Result or else i > count
loop
Result := a ~ at (i)
i := i + 1
end
end
is_all_different: BOOLEAN
-- Are all the elements in Current different from each other?
-- Uses object comparison not reference comparison.
local
i, j: INTEGER_32
a: G
do
-- Must check all against each of the others.
-- Assume true until finding two that are the same.
Result := True
from i := 1
until i > count
loop
a := at (i)
from j := i + 1
until not Result or else j > count
loop
Result := not (a ~ at (i))
j := j + 1
end
i := i + 1
end
end
end

89
jj_containers/jj_array2.e Normal file
View File

@ -0,0 +1,89 @@
note
description: "[
A 2-d array with some additional features, including those added
by class {JJ_ARRAY}.
]"
author: "Jimmy J. Johnson"
date: "10/27/21"
copyright: "Copyright (c) 2021, Jimmy J. Johnson"
license: "Eiffel Forum v2 (http://www.eiffel.com/licensing/forum.txt)"
class
JJ_ARRAY2 [G]
inherit
ARRAY2 [G]
JJ_ARRAY [G]
rename
make as array_make,
item as array_item,
put as array_put,
force as array_force,
resize as array_resize,
wipe_out as array_wipe_out,
make_filled as array_make_filled
export
{NONE}
array_make, array_force,
array_resize, array_wipe_out, make_from_array,
array_make_filled, make_from_special, make_from_cil,
remove_head, remove_tail, keep_head, keep_tail,
grow, conservative_resize, conservative_resize_with_default,
automatic_grow
{ARRAY2}
array_put, array_item
{ANY}
copy, is_equal, area, to_c
end
create
make,
make_filled
feature -- Query
occurrences_per_row (a_item: G; a_row: INTEGER_32): INTEGER_32
-- The number of times `a_item' appears in `a_row'.
require
row_index_big_enough: a_row >= 1
row_index_small_enough: a_row <= height
local
i: INTEGER
do
from i := 1
until i > width
loop
if a_item ~ item (a_row, i) then
Result := Result + 1
end
i := i + 1
end
ensure
result_large_enough: Result >= 0
result_small_enough: Result <= width
end
occurrences_per_column (a_item: G; a_column: INTEGER_32): INTEGER_32
-- The number of times `a_item' appears in `a_column'.
require
column_index_big_enough: a_column >= 1
column_index_small_enough: a_column <= width
local
i: INTEGER
do
from i := 1
until i > height
loop
if a_item ~ item (i, a_column) then
Result := Result + 1
end
i := i + 1
end
ensure
result_large_enough: Result >= 0
result_small_enough: Result <= height
end
end

View File

@ -0,0 +1,148 @@
note
description: "[
An {ARRAYED_LIST} but with feature `prune' changed to remove the first
occurance of an item after the *beginning* of the list instead of after
the current cursor postion.
]"
author: "Jimmy J. Johnson"
date: "10/27/21"
copyright: "Copyright (c) 2021, Jimmy J. Johnson"
license: "Eiffel Forum v2 (http://www.eiffel.com/licensing/forum.txt)"
class
JJ_ARRAYED_LIST [G]
inherit
ARRAYED_LIST [G]
rename
replace as list_replace,
after as is_after, -- I just don't like the original names
before as is_before,
full as is_full
redefine
prune, -- to prune from beginning of list
array_item
select
prune
end
ARRAYED_LIST [G]
rename
prune as prune_ise, -- to keep the original version
replace as list_replace,
after as is_after,
before as is_before,
full as is_full
redefine
array_item
end
create
make, make_filled
feature -- Access
as_set: JJ_ARRAYED_SET [G]
-- The set of items in Current.
local
i: INTEGER
do
create Result.make (count)
from i := 1
until i > count
loop
Result.extend (i_th (i))
i := i + 1
end
end
feature -- Basic operations
prune (a_item: like item)
-- Remove first occurance of `a_item' starting at the first item.
-- Move cursor to right neighbor.
-- (or `after' if no right neighbor or if `a_item' does not occur).
do
start
Precursor {ARRAYED_LIST} (a_item)
end
replace (a_item, a_new_item: like item)
-- Remove `a_item' and insert `a_new_item'.
require
item_exists: a_item /= Void
new_item_exists: a_new_item /= Void
has_item: has (a_item)
local
i: INTEGER
do
i := index
start
search (a_item)
check
object_found: object_comparison implies a_item ~ item
item_found: not object_comparison implies a_item = item
-- because of pecondition "has_item"
end
list_replace (a_new_item)
go_i_th (i)
ensure
has_new_item: has (a_new_item)
count_same: count = old count
end
feature -- Status report
is_all_same: BOOLEAN
-- Are all the elements in Current equivalent?
-- Uses object comparison to check sameness.
local
i: INTEGER_32
a: G
do
-- Simple check if all are same as the first.
-- Assume true until finding a contradiction
a := at (i)
Result := True
from i := 2
until not Result or else i > count
loop
Result := a ~ at (i)
i := i + 1
end
end
is_all_different: BOOLEAN
-- Are all the elements in Current different from each other?
-- Uses object comparison not reference comparison
local
i, j: INTEGER_32
a: G
do
-- Must check all against each of the others.
-- Assume true until finding two that are the same.
Result := True
from i := 1
until not Result or else i > count
loop
from j := i + 1
until not Result or else j > count
loop
Result := not (a ~ at (i))
j := j + 1
end
i := i + 1
end
end
feature {NONE} -- Implementation
array_item (i: INTEGER): like item
-- Entry at index `i', if in index interval.
-- Redefined to make result type "like item" instead of type G.
do
Result := Precursor {ARRAYED_LIST} (i)
end
end

View File

@ -0,0 +1,65 @@
note
description: "[
ARRAYED_SET with added feature for replacing an existing item.
]"
author: "Jimmy J. Johnson"
date: "10/27/21"
copyright: "Copyright (c) 2021, Jimmy J. Johnson"
license: "Eiffel Forum v2 (http://www.eiffel.com/licensing/forum.txt)"
class
JJ_ARRAYED_SET [G]
inherit
ARRAYED_SET [G]
rename
replace as list_replace,
after as is_after,
before as is_before,
full as is_full
export
{ANY}
for_all,
there_exists,
capacity,
i_th
undefine
make_from_iterable,
-- put,
prune,
array_item,
is_inserted,
changeable_comparison_criterion -- Possibly allows duplicates
select
put
end
JJ_ARRAYED_LIST [G]
rename
has as has alias "∋"
undefine
put,
sequence_put,
extend,
force
-- changeable_comparison_criterion
redefine
replace
end
create
make, make_filled
feature -- Basic operations
replace (a_item, a_new_item: like item)
-- If `a_new_item' is not in Current and `a_item' is, remove
-- `a_item' and insert `a_new_item'.
do
if has (a_item) and then not has (a_new_item) then
Precursor {JJ_ARRAYED_LIST} (a_item, a_new_item)
end
end
end

View File

@ -0,0 +1,45 @@
note
description: "[
An {ARRAYED_STACK} which allows inspection of any item, not just the
top one. Items are still added to and removed from the top.
]"
author: "Jimmy J. Johnson"
date: "10/27/21"
copyright: "Copyright (c) 2021, Jimmy J. Johnson"
license: "Eiffel Forum v2 (http://www.eiffel.com/licensing/forum.txt)"
class
JJ_ARRAYED_STACK [G]
inherit
ARRAYED_STACK [G]
export
{ANY}
i_th,
first,
last,
valid_index,
do_all,
do_all_with_index,
do_if,
do_if_with_index,
for_all,
there_exists
redefine
array_item
end
create
make, make_filled
feature {NONE} -- Implementation
array_item (i: INTEGER): like item
-- Entry at index `i', if in index interval.
-- Redefined to make result type "like item" instead of type G.
do
Result := Precursor {ARRAYED_STACK} (i)
end
end

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<system xmlns="http://www.eiffel.com/developers/xml/configuration-1-21-0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.eiffel.com/developers/xml/configuration-1-21-0 http://www.eiffel.com/developers/xml/configuration-1-21-0.xsd" name="jj_containers" uuid="BACF2C54-C8D8-4C99-826C-D73A3B069BF6" library_target="jj_containers">
<target name="jj_containers">
<root all_classes="true"/>
<capability>
<catcall_detection support="none"/>
<void_safety support="all" use="all"/>
</capability>
<library name="base" location="$ISE_LIBRARY\library\base\base.ecf"/>
<cluster name="jj_containers" location=".\" recursive="true">
<file_rule>
<exclude>/.git$</exclude>
<exclude>/.svn$</exclude>
<exclude>/CVS$</exclude>
<exclude>/EIFGENs$</exclude>
<exclude>/demo$</exclude>
<exclude>/docs$</exclude>
</file_rule>
</cluster>
</target>
</system>

View File

@ -0,0 +1,34 @@
note
description: "[
An arrayed list that cannot change size.
]"
author: "Jimmy J. Johnson"
date: "10/27/21"
copyright: "Copyright (c) 2021, Jimmy J. Johnson"
license: "Eiffel Forum v2 (http://www.eiffel.com/licensing/forum.txt)"
class
JJ_FIXED_ARRAY [G]
inherit
FIXED [G]
rename
full as is_full
undefine
copy,
is_equal
end
JJ_ARRAYED_LIST [G]
undefine
is_full,
resizable
end
create
make,
make_filled
end

View File

@ -0,0 +1,35 @@
note
description: "[
A set implemented as an array that cannot resize.
]"
author: "Jimmy J. Johnson"
date: "10/27/21"
copyright: "Copyright (c) 2021, Jimmy J. Johnson"
license: "Eiffel Forum v2 (http://www.eiffel.com/licensing/forum.txt)"
class
JJ_FIXED_SET [G]
inherit
FIXED [G]
rename
has as has alias "∋",
full as is_full
undefine
copy,
is_equal,
changeable_comparison_criterion
end
JJ_ARRAYED_SET [G]
undefine
is_full,
resizable
end
create
make,
make_filled
end

View File

@ -0,0 +1,47 @@
note
description: "[
A {LINKED_STACK} which allows inspection of any item, not just the
top one. Items are still added to and removed from the top.
]"
author: "Jimmy J. Johnson"
date: "10/27/21"
copyright: "Copyright (c) 2021, Jimmy J. Johnson"
license: "Eiffel Forum v2 (http://www.eiffel.com/licensing/forum.txt)"
class
JJ_LINKED_STACK [G]
inherit
LINKED_STACK [G]
export {ANY}
i_th,
first,
last,
valid_index
redefine
i_th,
at
end
create
make
feature -- Access
i_th alias "[]" (a_index: INTEGER): like item
-- Redefined to anchor to item.
do
Result := Precursor {LINKED_STACK} (a_index)
end
feature {NONE} -- Implementation
at alias "@" (i: INTEGER): like item
-- Entry at index `i', if in index interval.
-- Redefined to make result type "like item" instead of type G.
do
Result := Precursor {LINKED_STACK} (i)
end
end

View File

@ -0,0 +1,48 @@
note
description: "[
A priority queue implemented as sorted lists, but giving
the minimum value instead of, like Eiffel Software's class,
the maximum value.
]"
author: "Jimmy J. Johnson"
date: "11/11/21"
copyright: "Copyright (c) 2021, Jimmy J. Johnson"
license: "Eiffel Forum v2 (http://www.eiffel.com/licensing/forum.txt)"
class
JJ_MINIMUM_PRIORITY_QUEUE [G -> COMPARABLE]
inherit
LINKED_PRIORITY_QUEUE [G]
redefine
item,
remove
end
create
make,
make_from_iterable
create {JJ_MINIMUM_PRIORITY_QUEUE}
make_sublist
feature -- Access
item: G
-- Item at bottom of queue (i.e. smallest value)
do
Result := i_th (1)
end
feature -- Removal
remove
-- Remove item of highest value.
do
go_i_th (1)
Precursor {LINKED_PRIORITY_QUEUE}
go_i_th (1)
end
end

View File

@ -0,0 +1,264 @@
note
description: "[
An array whose items *can* be ordered by a total-ordered relationship.
Feature `set_ordered' causes `extend' to place an item into the array
at its proper sort order position.
Feature `prune' is redefined in {JJ_ARRAYED_LIST} to remove the first
occurrence of an item at or after the beginning of the list, not after
the current position, as in {ARRAYED_LIST}.
]"
author: "Jimmy J. Johnson"
date: "10/27/21"
copyright: "Copyright (c) 2021, Jimmy J. Johnson"
license: "Eiffel Forum v2 (http://www.eiffel.com/licensing/forum.txt)"
class
JJ_SORTABLE_ARRAY [G -> COMPARABLE]
inherit
JJ_ARRAYED_LIST [G]
export
{NONE}
force -- to trap a design error temporarily
redefine
put,
extend,
replace,
has,
is_inserted
end
create
make, make_filled
feature -- Status report
is_inserting_ordered: BOOLEAN
-- Should items be inserted in their ordered position?
-- The default is to add items at the end of the list; the list
-- can be sorted later.
is_sorted: BOOLEAN
-- Is the structure sorted?
local
c: CURSOR
prev: like item
do
Result := True
if count > 1 then
from
c := cursor
start
check not off end
prev := item
forth
until
is_after or not Result
loop
Result := (prev <= item)
prev := item
forth
end
go_to (c)
end
end
feature -- Status setting
set_ordered
-- Sort Current and then ensure future insertions place items
-- at their proper position based on a total order relation.
do
sort
is_inserting_ordered := True
ensure
is_ordered: is_inserting_ordered
is_sorted: is_sorted
end
set_unordered
-- Make future insertions place items at the end of the list.
-- This is the default.
do
is_inserting_ordered := False
ensure
not_ordered: not is_inserting_ordered
end
feature -- Query
has (a_item: like item): BOOLEAN
-- Does current include `v'?
do
if object_comparison then
-- can use the binary search
Result := seek_position (a_item).was_found
else
-- Must check references; the binary search does not;
-- it uses `is_less' which compares objects.
Result := Precursor (a_item)
end
end
seek_position (a_item: like item): TUPLE [position: INTEGER; was_found: BOOLEAN]
-- The position of `a_item' in Current or the position where
-- it would be inserted. Sets `was_found' if `a_item' was
-- in Current.
local
pos: INTEGER
low, mid, high: INTEGER
found: BOOLEAN
c: CURSOR
do
if is_inserting_ordered then
-- do a binary search
check
is_sorted: is_sorted
-- because `is_inserting_ordered' keeps Current sorted.
end
from
low := 1
high := count
until found or else (low > high)
loop
mid := (low + high) // 2
if a_item < i_th (mid) then
high := mid - 1
elseif a_item > i_th (mid) then
low := mid + 1
else
found := True
end
end
if found then
-- Account for duplicates
from pos := mid
until pos > count - 1 or else i_th (pos + 1) > a_item
loop
pos := pos + 1
end
elseif count = 0 then
pos := 1
elseif a_item < i_th (mid) then
pos := mid
else
pos := mid + 1
end
else
-- perform a linear search
c := cursor
start
search (a_item)
pos := index
if is_after then
found := False
else
found := True
end
go_to (c)
end
Result := [pos, found]
end
is_inserted (a_item: like item): BOOLEAN
-- Was `a_item' inserted into Current?
-- Redefined because {ARRAYED_LIST} always extends items at the
-- end; that is not necessarily the case for this class.
do
Result := has (a_item)
end
feature -- Basic operations
extend (a_item: like item)
-- Put `a_item' into Current at `seek_position'.
local
i: INTEGER
do
if is_empty or else not is_inserting_ordered then
-- add to end
Precursor {JJ_ARRAYED_LIST} (a_item)
else
i := seek_position (a_item).position
if i > count then
-- Add at end
Precursor {JJ_ARRAYED_LIST} (a_item)
else
-- Add at ordered position.
insert (a_item, i)
end
end
ensure then
still_sorted: is_inserting_ordered implies is_sorted
end
put (a_item: like item)
-- Put `a_item' into Current at `seek_position'.
-- Same as extend.
do
extend (a_item)
end
replace (a_item, a_new_item: like item)
-- Remove `a_item' and insert `a_new_item'.
-- Redefined to ensure `a_new_item' is inserted into the proper
-- place.
do
prune (a_item)
extend (a_new_item)
end
sort
-- Sort all items.
-- Has O(`count' * log (`count')) complexity.
--| Uses comb-sort (BYTE February '91)
-- Adapted from ISE's feature from {SORTED_TWO_WAY_LIST}.
local
no_change: BOOLEAN
gap: INTEGER
i, j: INTEGER
left_v, v: like item
do
if not is_empty then
from
gap := count * 10 // 13
until
gap = 0
loop
from
no_change := False
i := 1 + gap
until
no_change
loop
no_change := True
from
j := 1 -- first element index
until
i > count
loop
left_v := i_th (j)
v := i_th (i) -- item at first index + gap
if v < left_v then
-- Swap `left_v' with `v'
no_change := False
put_i_th (left_v, i)
put_i_th (v, j)
end
j := j + 1
i := i + 1
end
end
gap := gap * 10 // 13
end
end
ensure
is_sorted: is_sorted
end
invariant
is_inserting_ordered_implication: is_inserting_ordered implies is_sorted
end

View File

@ -0,0 +1,33 @@
note
description: "[
An array that can be sorted and cannot resize.
]"
author: "Jimmy J. Johnson"
date: "10/27/21"
copyright: "Copyright (c) 2021, Jimmy J. Johnson"
license: "Eiffel Forum v2 (http://www.eiffel.com/licensing/forum.txt)"
class
JJ_SORTABLE_FIXED_ARRAY [G -> COMPARABLE]
inherit
FIXED [G]
rename
full as is_full
undefine
copy,
is_equal
end
JJ_SORTABLE_ARRAY [G]
undefine
is_full,
resizable
end
create
make,
make_filled
end

View File

@ -0,0 +1,34 @@
note
description: "[
An array that can be sorted and cannot resize.
]"
author: "Jimmy J. Johnson"
date: "10/27/21"
copyright: "Copyright (c) 2021, Jimmy J. Johnson"
license: "Eiffel Forum v2 (http://www.eiffel.com/licensing/forum.txt)"
class
JJ_SORTABLE_FIXED_SET [G -> COMPARABLE]
inherit
FIXED [G]
rename
has as has alias "∋",
full as is_full
undefine
changeable_comparison_criterion,
copy,
is_equal
end
JJ_SORTABLE_SET [G]
undefine
is_full,
resizable
end
create
make, make_filled
end

View File

@ -0,0 +1,76 @@
note
description: "[
A set, implemented as an array, whose items *can* be ordered based on
a total-order relationship.
Feature `set_ordered' causes `extend' to place an item into the array
at its proper sort-order position.
Feature `prune' is redefined in {JJ_ARRAYED_LIST} to remove the first
occurrence of an item at or after the beginning of the list, not after
the current position, as in {ARRAYED_LIST}.
]"
author: "Jimmy J. Johnson"
date: "10/27/21"
copyright: "Copyright (c) 2021, Jimmy J. Johnson"
license: "Eiffel Forum v2 (http://www.eiffel.com/licensing/forum.txt)"
class
JJ_SORTABLE_SET [G -> COMPARABLE]
inherit
JJ_ARRAYED_SET [G]
export
{ANY}
for_all,
there_exists,
capacity,
i_th
undefine
put,
sequence_put,
prune,
array_item,
is_inserted,
has
redefine
extend
select
put,
extend
end
JJ_SORTABLE_ARRAY [G]
rename
has as has alias "∋",
extend as jj_sl_extend
export {ANY}
i_th
undefine
changeable_comparison_criterion,
replace
end
create
make, make_filled
feature -- Basic operations
extend (a_item: like item)
-- Put `a_item' into Current at `seek_position' if
-- not alread in the array.
local
i: INTEGER
do
if not has (a_item) then
i := seek_position (a_item).position
if i > count then
-- add `a_item' at the end
force (a_item)
else
-- add `a_item' at its ordered position
insert (a_item, i)
end
end
end
end

18
jj_vision/Forum.txt Normal file
View File

@ -0,0 +1,18 @@
Eiffel Forum License, version 2
1. Permission is hereby granted to use, copy, modify and/or
distribute this package, provided that:
* copyright notices are retained unchanged,
* any distribution of this package, whether modified or not,
includes this license text.
2. Permission is hereby also granted to distribute binary programs
which depend on this package. If the binary program depends on a
modified version of this package, you are encouraged to publicly
release the modified version of this package.
THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT WARRANTY. ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE TO ANY PARTY FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THIS PACKAGE.

2
jj_vision/README.md Normal file
View File

@ -0,0 +1,2 @@
# jj_vision
Windowing framework build on Vision2

View File

@ -0,0 +1,23 @@
note
description: "[
Bitmaps created programatically from PIXEL_BUFFERS
]"
author: "Jimmy J. Johnson"
date: "$Date: 2012-05-19 11:28:28 -0400 (Sat, 19 May 2012) $"
revision: "$Revision: 9 $"
class
BITMAPS
inherit
PIXEL_BUFFERS
feature -- Access
icon_back_color: EV_PIXMAP
do
create Result.make_with_pixel_buffer (Icon_back_color_buffer)
end
end

View File

@ -0,0 +1,73 @@
note
description: "Pixel buffer that replaces original image file.%
%The original version of this class has been generated by Image Eiffel Code."
class
CLIENTLNK
inherit
EV_PIXEL_BUFFER
create
make
feature {NONE} -- Initialization
make
-- Initialization
do
make_with_size (16, 16)
fill_memory
end
feature {NONE} -- Image data
c_colors_0 (a_ptr: POINTER; a_offset: INTEGER)
-- Fill `a_ptr' with colors data from `a_offset'.
external
"C inline"
alias
"{
{
#define B(q) \
#q
#ifdef EIF_WINDOWS
#define A(a,r,g,b) \
B(\x##b\x##g\x##r\x##a)
#else
#define A(a,r,g,b) \
B(\x##r\x##g\x##b\x##a)
#endif
char l_data[] =
A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)
A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,25,57,FF)A(FF,25,57,FF)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,25,57,FF)A(FF,25,57,FF)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,25,57,FF)A(FF,25,57,FF)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,25,57,FF)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,50)A(FF,00,00,50)
A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,50)A(FF,00,00,50)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,50)A(FF,00,00,50)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,00,00,50)A(FF,00,00,50)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)
A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6)A(FF,D6,D6,D6);
memcpy ((EIF_NATURAL_32 *)$a_ptr + $a_offset, &l_data, sizeof l_data - 1);
}
}"
end
build_colors (a_ptr: POINTER)
-- Build `colors'.
do
c_colors_0 (a_ptr, 0)
end
feature {NONE} -- Image data filling.
fill_memory
-- Fill image data into memory.
local
l_pointer: POINTER
do
if attached {EV_PIXEL_BUFFER_IMP} implementation as l_imp then
l_pointer := l_imp.data_ptr
if not l_pointer.is_default_pointer then
build_colors (l_pointer)
l_imp.unlock
end
end
end
end -- CLIENTLNK

View File

@ -0,0 +1,73 @@
note
description: "Pixel buffer that replaces original image file.%
%The original version of this class has been generated by Image Eiffel Code."
class
ICON_AUTO_SLICE_LIMITS_COLOR
inherit
EV_PIXEL_BUFFER
create
make
feature {NONE} -- Initialization
make
-- Initialization
do
make_with_size (16, 16)
fill_memory
end
feature {NONE} -- Image data
c_colors_0 (a_ptr: POINTER; a_offset: INTEGER)
-- Fill `a_ptr' with colors data from `a_offset'.
external
"C inline"
alias
"{
{
#define B(q) \
#q
#ifdef EIF_WINDOWS
#define A(a,r,g,b) \
B(\x##b\x##g\x##r\x##a)
#else
#define A(a,r,g,b) \
B(\x##r\x##g\x##b\x##a)
#endif
char l_data[] =
A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,0E,0E,0E)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,0E,0E,0E)A(FF,0E,0E,0E)A(FF,7A,7A,7A)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,7A,7A,7A)A(FF,0E,0E,0E)A(FF,0E,0E,0E)A(FF,7A,7A,7A)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,7A,7A,7A)A(FF,0E,0E,0E)A(FF,0E,0E,0E)A(FF,7A,7A,7A)A(00,00,00,00)A(00,00,00,00)A(FF,50,32,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,50,32,00)A(00,00,00,00)A(00,00,00,00)A(FF,7A,7A,7A)A(FF,0E,0E,0E)
A(FF,0E,0E,0E)A(FF,7A,7A,7A)A(00,00,00,00)A(FF,50,32,00)A(FF,73,4A,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,50,32,00)A(FF,73,4A,00)A(00,00,00,00)A(FF,7A,7A,7A)A(FF,0E,0E,0E)A(FF,0E,0E,0E)A(FF,7A,7A,7A)A(FF,50,32,00)A(FF,73,4A,00)A(FF,73,4A,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,50,32,00)A(FF,73,4A,00)A(FF,73,4A,00)A(FF,7A,7A,7A)A(FF,0E,0E,0E)A(FF,0E,0E,0E)A(FF,50,32,00)A(FF,73,4A,00)A(FF,73,4A,00)A(FF,73,4A,00)A(FF,73,4A,00)A(FF,73,4A,00)A(FF,73,4A,00)A(FF,73,4A,00)A(FF,73,4A,00)A(FF,73,4A,00)A(FF,73,4A,00)A(FF,73,4A,00)A(FF,73,4A,00)A(FF,73,4A,00)A(FF,0E,0E,0E)A(FF,0E,0E,0E)A(FF,73,4A,00)A(FF,73,4A,00)A(FF,73,4A,00)A(FF,73,4A,00)A(FF,73,4A,00)A(FF,73,4A,00)A(FF,73,4A,00)A(FF,73,4A,00)A(FF,73,4A,00)A(FF,73,4A,00)A(FF,73,4A,00)A(FF,73,4A,00)A(FF,73,4A,00)A(FF,96,62,00)A(FF,0E,0E,0E)A(FF,0E,0E,0E)A(FF,7A,7A,7A)A(FF,73,4A,00)A(FF,73,4A,00)A(FF,96,62,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,73,4A,00)A(FF,73,4A,00)A(FF,96,62,00)A(FF,7A,7A,7A)A(FF,0E,0E,0E)
A(FF,0E,0E,0E)A(FF,7A,7A,7A)A(00,00,00,00)A(FF,73,4A,00)A(FF,96,62,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,73,4A,00)A(FF,96,62,00)A(00,00,00,00)A(FF,7A,7A,7A)A(FF,0E,0E,0E)A(FF,0E,0E,0E)A(FF,7A,7A,7A)A(00,00,00,00)A(00,00,00,00)A(FF,96,62,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,96,62,00)A(00,00,00,00)A(00,00,00,00)A(FF,7A,7A,7A)A(FF,0E,0E,0E)A(FF,0E,0E,0E)A(FF,7A,7A,7A)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,7A,7A,7A)A(FF,0E,0E,0E)A(FF,0E,0E,0E)A(FF,7A,7A,7A)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,7A,7A,7A)A(FF,0E,0E,0E)A(FF,0E,0E,0E)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,0E,0E,0E)
A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00);
memcpy ((EIF_NATURAL_32 *)$a_ptr + $a_offset, &l_data, sizeof l_data - 1);
}
}"
end
build_colors (a_ptr: POINTER)
-- Build `colors'.
do
c_colors_0 (a_ptr, 0)
end
feature {NONE} -- Image data filling.
fill_memory
-- Fill image data into memory.
local
l_pointer: POINTER
do
if attached {EV_PIXEL_BUFFER_IMP} implementation as l_imp then
l_pointer := l_imp.data_ptr
if not l_pointer.is_default_pointer then
build_colors (l_pointer)
l_imp.unlock
end
end
end
end -- ICON_AUTO_SLICE_LIMITS_COLOR

View File

@ -0,0 +1,73 @@
note
description: "Pixel buffer that replaces original image file.%
%The original version of this class has been generated by Image Eiffel Code."
class
ICON_BACK_COLOR
inherit
EV_PIXEL_BUFFER
create
make
feature {NONE} -- Initialization
make
-- Initialization
do
make_with_size (16, 16)
fill_memory
end
feature {NONE} -- Image data
c_colors_0 (a_ptr: POINTER; a_offset: INTEGER)
-- Fill `a_ptr' with colors data from `a_offset'.
external
"C inline"
alias
"{
{
#define B(q) \
#q
#ifdef EIF_WINDOWS
#define A(a,r,g,b) \
B(\x##b\x##g\x##r\x##a)
#else
#define A(a,r,g,b) \
B(\x##r\x##g\x##b\x##a)
#endif
char l_data[] =
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,33,66,FF)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,33,66,FF)A(FF,CC,FF,FF)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,33,66,FF)A(FF,CC,FF,FF)A(FF,99,FF,FF)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)
A(00,01,01,01)A(00,01,01,01)A(FF,33,66,FF)A(FF,CC,FF,FF)A(FF,99,FF,FF)A(FF,99,FF,FF)A(FF,00,00,00)A(FF,33,66,FF)A(FF,33,66,FF)A(FF,33,66,FF)A(FF,33,66,FF)A(FF,33,66,FF)A(FF,33,66,FF)A(FF,33,66,FF)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(FF,33,66,FF)A(FF,CC,FF,FF)A(FF,99,FF,FF)A(FF,33,CC,FF)A(FF,99,FF,FF)A(FF,99,FF,FF)A(FF,99,FF,FF)A(FF,99,FF,FF)A(FF,99,FF,FF)A(FF,99,FF,FF)A(FF,99,FF,FF)A(FF,99,FF,FF)A(FF,33,99,FF)A(FF,00,00,00)A(00,01,01,01)A(FF,33,66,FF)A(FF,CC,FF,FF)A(FF,99,FF,FF)A(FF,33,CC,FF)A(FF,33,CC,FF)A(FF,33,CC,FF)A(FF,33,CC,FF)A(FF,33,CC,FF)A(FF,33,CC,FF)A(FF,33,CC,FF)A(FF,33,CC,FF)A(FF,33,CC,FF)A(FF,33,CC,FF)A(FF,33,99,FF)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,33,99,FF)A(FF,33,CC,FF)A(FF,33,CC,FF)A(FF,33,99,FF)A(FF,33,99,FF)A(FF,33,99,FF)A(FF,33,99,FF)A(FF,33,99,FF)A(FF,33,99,FF)A(FF,33,99,FF)A(FF,33,99,FF)A(FF,33,99,FF)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,33,99,FF)A(FF,33,CC,FF)A(FF,33,99,FF)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(00,01,01,01)
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,33,99,FF)A(FF,33,99,FF)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,33,99,FF)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01);
memcpy ((EIF_NATURAL_32 *)$a_ptr + $a_offset, &l_data, sizeof l_data - 1);
}
}"
end
build_colors (a_ptr: POINTER)
-- Build `colors'.
do
c_colors_0 (a_ptr, 0)
end
feature {NONE} -- Image data filling.
fill_memory
-- Fill image data into memory.
local
l_pointer: POINTER
do
check attached {EV_PIXEL_BUFFER_IMP} implementation as l_imp then
l_pointer := l_imp.data_ptr
if l_pointer /= default_pointer then
build_colors (l_pointer)
l_imp.unlock
end
end
end
end -- ICON_BACK_COLOR

View File

@ -0,0 +1,71 @@
note
description: "Pixel buffer that replaces original image file.%
%The original version of this class has been generated by Image Eiffel Code."
class
ICON_BPARROW_COLOR
inherit
EV_PIXEL_BUFFER
create
make
feature {NONE} -- Initialization
make
-- Initialization
do
make_with_size (12, 12)
fill_memory
end
feature {NONE} -- Image data
c_colors_0 (a_ptr: POINTER; a_offset: INTEGER)
-- Fill `a_ptr' with colors data from `a_offset'.
external
"C inline"
alias
"{
{
#define B(q) \
#q
#ifdef EIF_WINDOWS
#define A(a,r,g,b) \
B(\x##b\x##g\x##r\x##a)
#else
#define A(a,r,g,b) \
B(\x##r\x##g\x##b\x##a)
#endif
char l_data[] =
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,A2,AB,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,A2,AB,00)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,A2,AB,00)A(FF,FF,FF,00)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,A2,AB,00)A(FF,A2,AB,00)A(FF,A2,AB,00)A(FF,A2,AB,00)A(FF,A2,AB,00)A(FF,A2,AB,00)A(FF,FF,FF,CA)A(FF,FF,FF,00)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,A2,AB,00)A(FF,FF,FF,CA)A(FF,FF,FF,CA)A(FF,FF,FF,CA)A(FF,FF,FF,CA)A(FF,FF,FF,CA)A(FF,FF,FF,CA)A(FF,FF,FF,CA)A(FF,FF,FF,00)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(FF,A2,AB,00)A(FF,FF,FF,CA)A(FF,FF,FF,00)A(FF,FF,FF,00)A(FF,FF,FF,00)A(FF,FF,FF,00)A(FF,FF,FF,00)
A(FF,FF,FF,00)A(FF,FF,FF,00)A(FF,A2,AB,00)A(FF,00,00,00)A(00,01,01,01)A(FF,A2,AB,00)A(FF,E1,E1,00)A(FF,E1,E1,00)A(FF,E1,E1,00)A(FF,E1,E1,00)A(FF,E1,E1,00)A(FF,E1,E1,00)A(FF,FF,FF,00)A(FF,A2,AB,00)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,E1,E1,00)A(FF,A2,AB,00)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,A2,AB,00)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01);
memcpy ((EIF_NATURAL_32 *)$a_ptr + $a_offset, &l_data, sizeof l_data - 1);
}
}"
end
build_colors (a_ptr: POINTER)
-- Build `colors'.
do
c_colors_0 (a_ptr, 0)
end
feature {NONE} -- Image data filling.
fill_memory
-- Fill image data into memory.
local
l_pointer: POINTER
do
if attached {EV_PIXEL_BUFFER_IMP} implementation as l_imp then
l_pointer := l_imp.data_ptr
if not l_pointer.is_default_pointer then
build_colors (l_pointer)
l_imp.unlock
end
end
end
end -- ICON_BPARROW_COLOR

View File

@ -0,0 +1,73 @@
note
description: "Pixel buffer that replaces original image file.%
%The original version of this class has been generated by Image Eiffel Code."
class
ICON_CHECK_EXPORTS_COLOR
inherit
EV_PIXEL_BUFFER
create
make
feature {NONE} -- Initialization
make
-- Initialization
do
make_with_size (16, 16)
fill_memory
end
feature {NONE} -- Image data
c_colors_0 (a_ptr: POINTER; a_offset: INTEGER)
-- Fill `a_ptr' with colors data from `a_offset'.
external
"C inline"
alias
"{
{
#define B(q) \
#q
#ifdef EIF_WINDOWS
#define A(a,r,g,b) \
B(\x##b\x##g\x##r\x##a)
#else
#define A(a,r,g,b) \
B(\x##r\x##g\x##b\x##a)
#endif
char l_data[] =
A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,80,80,80)A(FF,80,80,80)A(FF,80,80,80)A(FF,80,80,80)A(FF,80,80,80)A(FF,80,80,80)A(FF,80,80,80)A(FF,80,80,80)A(FF,80,80,80)A(FF,80,80,80)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,80,80,80)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,80,80,80)A(FF,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,B9,3D,00)A(FF,B9,3D,00)A(FF,B9,3D,00)A(FF,B9,3D,00)A(FF,B9,3D,00)A(FF,B9,3D,00)A(FF,B9,3D,00)A(FF,B9,3D,00)A(FF,B9,3D,00)A(FF,B9,3D,00)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,80,80,80)A(FF,FF,FF,FF)A(FF,00,00,00)A(00,00,00,00)A(FF,B9,3D,00)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,B9,3D,00)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,B9,3D,00)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,B9,3D,00)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,B9,3D,00)A(FF,C0,C0,C0)A(FF,C0,C0,C0)A(FF,C0,C0,C0)A(FF,FF,FF,FF)A(FF,C0,C0,C0)A(FF,00,00,00)
A(FF,B9,3D,00)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,B9,3D,00)A(FF,B9,3D,00)A(FF,B9,3D,00)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,B9,3D,00)A(FF,FF,FF,FF)A(FF,19,50,00)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,C0,C0,C0)A(FF,00,00,00)A(FF,B9,3D,00)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,B9,3D,00)A(FF,B9,3D,00)A(FF,B9,3D,00)A(FF,B9,3D,00)A(FF,B9,3D,00)A(FF,FF,FF,FF)A(FF,B9,3D,00)A(FF,19,50,00)A(FF,00,00,00)A(FF,C0,C0,C0)A(FF,FF,FF,FF)A(FF,C0,C0,C0)A(FF,00,00,00)A(FF,B9,3D,00)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,B9,3D,00)A(FF,B9,3D,00)A(FF,B9,3D,00)A(FF,B9,3D,00)A(FF,B9,3D,00)A(FF,FF,FF,FF)A(FF,19,50,00)A(FF,31,96,00)A(FF,00,00,00)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,C0,C0,C0)A(FF,00,00,00)A(FF,B9,3D,00)A(FF,FF,FF,FF)A(FF,19,50,00)A(FF,B9,3D,00)A(FF,B9,3D,00)A(FF,B9,3D,00)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,19,50,00)A(FF,31,96,00)A(FF,31,96,00)A(FF,00,00,00)A(FF,C0,C0,C0)A(FF,FF,FF,FF)A(FF,C0,C0,C0)A(FF,00,00,00)A(FF,B9,3D,00)A(FF,FF,FF,FF)A(FF,19,50,00)A(FF,19,50,00)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,19,50,00)A(FF,31,96,00)A(FF,31,96,00)A(FF,25,73,00)A(FF,00,00,00)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,C0,C0,C0)A(FF,00,00,00)
A(FF,B9,3D,00)A(FF,FF,FF,FF)A(FF,19,50,00)A(FF,31,96,00)A(FF,19,50,00)A(FF,FF,FF,FF)A(FF,19,50,00)A(FF,31,96,00)A(FF,31,96,00)A(FF,25,73,00)A(FF,00,00,00)A(FF,C0,C0,C0)A(FF,C0,C0,C0)A(FF,FF,FF,FF)A(FF,C0,C0,C0)A(FF,00,00,00)A(FF,B9,3D,00)A(FF,B9,3D,00)A(FF,19,50,00)A(FF,31,96,00)A(FF,31,96,00)A(FF,19,50,00)A(FF,31,96,00)A(FF,31,96,00)A(FF,25,73,00)A(FF,00,00,00)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,C0,C0,C0)A(FF,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,00,00,00)A(FF,31,96,00)A(FF,31,96,00)A(FF,31,96,00)A(FF,31,96,00)A(FF,25,73,00)A(FF,00,00,00)A(FF,C0,C0,C0)A(FF,C0,C0,C0)A(FF,C0,C0,C0)A(FF,C0,C0,C0)A(FF,FF,FF,FF)A(FF,C0,C0,C0)A(FF,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,00,00,00)A(FF,31,96,00)A(FF,31,96,00)A(FF,25,73,00)A(FF,00,00,00)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,C0,C0,C0)A(FF,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,80,80,80)A(FF,00,00,00)A(FF,25,73,00)A(FF,00,00,00)A(FF,C0,C0,C0)A(FF,C0,C0,C0)A(FF,C0,C0,C0)A(FF,C0,C0,C0)A(FF,C0,C0,C0)A(FF,C0,C0,C0)A(FF,C0,C0,C0)A(FF,C0,C0,C0)A(FF,00,00,00)
A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00);
memcpy ((EIF_NATURAL_32 *)$a_ptr + $a_offset, &l_data, sizeof l_data - 1);
}
}"
end
build_colors (a_ptr: POINTER)
-- Build `colors'.
do
c_colors_0 (a_ptr, 0)
end
feature {NONE} -- Image data filling.
fill_memory
-- Fill image data into memory.
local
l_pointer: POINTER
do
if attached {EV_PIXEL_BUFFER_IMP} implementation as l_imp then
l_pointer := l_imp.data_ptr
if not l_pointer.is_default_pointer then
build_colors (l_pointer)
l_imp.unlock
end
end
end
end -- ICON_CHECK_EXPORTS_COLOR

View File

@ -0,0 +1,70 @@
note
description: "Pixel buffer that replaces original image file.%
%The original version of this class has been generated by Image Eiffel Code."
class
ICON_CLOSE_COLOR
inherit
EV_PIXEL_BUFFER
create
make
feature {NONE} -- Initialization
make
-- Initialization
do
make_with_size (8, 8)
fill_memory
end
feature {NONE} -- Image data
c_colors_0 (a_ptr: POINTER; a_offset: INTEGER)
-- Fill `a_ptr' with colors data from `a_offset'.
external
"C inline"
alias
"{
{
#define B(q) \
#q
#ifdef EIF_WINDOWS
#define A(a,r,g,b) \
B(\x##b\x##g\x##r\x##a)
#else
#define A(a,r,g,b) \
B(\x##r\x##g\x##b\x##a)
#endif
char l_data[] =
A(FF,00,00,00)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,00,00,00)A(00,01,01,01)A(FF,00,00,00)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,00,00,00)A(00,01,01,01)A(FF,00,00,00)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01);
memcpy ((EIF_NATURAL_32 *)$a_ptr + $a_offset, &l_data, sizeof l_data - 1);
}
}"
end
build_colors (a_ptr: POINTER)
-- Build `colors'.
do
c_colors_0 (a_ptr, 0)
end
feature {NONE} -- Image data filling.
fill_memory
-- Fill image data into memory.
local
l_pointer: POINTER
do
check attached {EV_PIXEL_BUFFER_IMP} implementation as l_imp then
l_pointer := l_imp.data_ptr
if l_pointer /= default_pointer then
build_colors (l_pointer)
l_imp.unlock
end
end
end
end -- ICON_CLOSE_COLOR

View File

@ -0,0 +1,73 @@
note
description: "Pixel buffer that replaces original image file.%
%The original version of this class has been generated by Image Eiffel Code."
class
ICON_DELETE_COLOR
inherit
EV_PIXEL_BUFFER
create
make
feature {NONE} -- Initialization
make
-- Initialization
do
make_with_size (16, 16)
fill_memory
end
feature {NONE} -- Image data
c_colors_0 (a_ptr: POINTER; a_offset: INTEGER)
-- Fill `a_ptr' with colors data from `a_offset'.
external
"C inline"
alias
"{
{
#define B(q) \
#q
#ifdef EIF_WINDOWS
#define A(a,r,g,b) \
B(\x##b\x##g\x##r\x##a)
#else
#define A(a,r,g,b) \
B(\x##r\x##g\x##b\x##a)
#endif
char l_data[] =
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,F9,00,00)A(FF,7F,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,7F,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,FF,69,28)A(FF,FF,56,12)A(FF,F9,00,00)A(FF,7F,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,DC,00,00)A(FF,7F,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,DC,00,00)A(FF,FF,69,28)A(FF,F9,00,00)A(FF,7F,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,DC,00,00)A(FF,7F,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,DC,00,00)A(FF,DC,00,00)A(FF,F9,00,00)A(FF,7F,00,00)A(00,01,01,01)A(00,01,01,01)A(FF,DC,00,00)A(FF,7F,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,DC,00,00)A(FF,F9,00,00)A(FF,7F,00,00)A(FF,DC,00,00)A(FF,7F,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,DC,00,00)A(FF,F9,00,00)A(FF,7F,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,DC,00,00)A(FF,F9,00,00)A(FF,7F,00,00)A(FF,7F,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,DC,00,00)A(FF,7F,00,00)A(00,01,01,01)A(00,01,01,01)A(FF,F9,00,00)A(FF,7F,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,DC,00,00)A(FF,7F,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,F9,00,00)A(FF,7F,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,DC,00,00)A(FF,7F,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,F9,00,00)A(FF,7F,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,FF,2A,2B)A(FF,FF,69,28)A(FF,7F,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,F9,00,00)A(FF,7F,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,FF,2A,2B)A(FF,FF,69,28)A(FF,7F,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,7F,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,7F,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01);
memcpy ((EIF_NATURAL_32 *)$a_ptr + $a_offset, &l_data, sizeof l_data - 1);
}
}"
end
build_colors (a_ptr: POINTER)
-- Build `colors'.
do
c_colors_0 (a_ptr, 0)
end
feature {NONE} -- Image data filling.
fill_memory
-- Fill image data into memory.
local
l_pointer: POINTER
do
check attached {EV_PIXEL_BUFFER_IMP} implementation as l_imp then
l_pointer := l_imp.data_ptr
if l_pointer /= default_pointer then
build_colors (l_pointer)
l_imp.unlock
end
end
end
end -- ICON_DELETE_COLOR

View File

@ -0,0 +1,70 @@
note
description: "Pixel buffer that replaces original image file.%
%The original version of this class has been generated by Image Eiffel Code."
class
ICON_EDIT_EXPRESSION_COLOR
inherit
EV_PIXEL_BUFFER
create
make
feature {NONE} -- Initialization
make
-- Initialization
do
make_with_size (8, 8)
fill_memory
end
feature {NONE} -- Image data
c_colors_0 (a_ptr: POINTER; a_offset: INTEGER)
-- Fill `a_ptr' with colors data from `a_offset'.
external
"C inline"
alias
"{
{
#define B(q) \
#q
#ifdef EIF_WINDOWS
#define A(a,r,g,b) \
B(\x##b\x##g\x##r\x##a)
#else
#define A(a,r,g,b) \
B(\x##r\x##g\x##b\x##a)
#endif
char l_data[] =
A(00,01,01,01)A(00,01,01,01)A(FF,6E,6E,6E)A(FF,6E,6E,6E)A(FF,6E,6E,6E)A(00,01,01,01)A(FF,56,56,56)A(00,01,01,01)A(00,01,01,01)A(FF,6E,6E,6E)A(FF,56,56,56)A(FF,56,56,56)A(FF,56,56,56)A(FF,32,32,32)A(FF,56,56,56)A(00,01,01,01)A(FF,6E,6E,6E)A(FF,32,32,32)A(FF,32,32,32)A(FF,32,32,32)A(FF,32,32,32)A(00,01,01,01)A(FF,32,32,32)A(00,01,01,01)A(FF,32,32,32)A(00,01,01,01)A(00,01,01,01)A(FF,96,62,00)A(FF,73,4A,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,96,62,00)A(FF,73,4A,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,96,62,00)A(FF,73,4A,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,96,62,00)A(FF,73,4A,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,96,62,00)A(FF,73,4A,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01);
memcpy ((EIF_NATURAL_32 *)$a_ptr + $a_offset, &l_data, sizeof l_data - 1);
}
}"
end
build_colors (a_ptr: POINTER)
-- Build `colors'.
do
c_colors_0 (a_ptr, 0)
end
feature {NONE} -- Image data filling.
fill_memory
-- Fill image data into memory.
local
l_pointer: POINTER
do
if attached {EV_PIXEL_BUFFER_IMP} implementation as l_imp then
l_pointer := l_imp.data_ptr
if not l_pointer.is_default_pointer then
build_colors (l_pointer)
l_imp.unlock
end
end
end
end -- ICON_EDIT_EXPRESSION_COLOR

View File

@ -0,0 +1,74 @@
note
description: "Pixel buffer that replaces original image file.%
%The original version of this class has been generated by Image Eiffel Code."
class
ICON_FOLDERS_COLOR
inherit
EV_PIXEL_BUFFER
create
make
feature {NONE} -- Initialization
make
-- Initialization
do
make_with_size (20, 20)
fill_memory
end
feature {NONE} -- Image data
c_colors_0 (a_ptr: POINTER; a_offset: INTEGER)
-- Fill `a_ptr' with colors data from `a_offset'.
external
"C inline"
alias
"{
{
#define B(q) \
#q
#ifdef EIF_WINDOWS
#define A(a,r,g,b) \
B(\x##b\x##g\x##r\x##a)
#else
#define A(a,r,g,b) \
B(\x##r\x##g\x##b\x##a)
#endif
char l_data[] =
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,66,66,00)A(FF,66,66,00)A(FF,66,66,00)A(FF,66,66,00)A(FF,66,66,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,66,66,00)A(FF,FF,FB,F0)A(FF,FF,FF,99)A(FF,FF,FF,99)A(FF,FF,FF,99)A(FF,CC,CC,99)A(FF,04,04,04)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,66,66,00)A(FF,66,66,00)A(FF,66,66,00)A(FF,66,66,00)A(FF,66,66,00)A(FF,66,66,00)A(FF,66,66,00)A(FF,66,66,00)A(FF,66,66,00)A(FF,66,66,00)A(FF,66,66,00)A(FF,66,66,00)A(FF,66,66,00)A(FF,66,66,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)
A(00,01,01,01)A(FF,66,66,00)A(FF,FF,FF,99)A(FF,FF,FF,99)A(FF,FF,FF,99)A(FF,FF,FF,99)A(FF,FF,FF,99)A(FF,FF,FF,99)A(FF,FF,FF,99)A(FF,FF,FF,99)A(FF,FF,FF,99)A(FF,FF,FF,99)A(FF,FF,FF,99)A(FF,FF,FF,99)A(FF,FF,FF,99)A(FF,04,04,04)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,66,66,00)A(FF,FF,FF,99)A(FF,FF,CC,00)A(FF,FF,FF,FF)A(FF,FF,CC,00)A(FF,FF,FF,FF)A(FF,FF,CC,00)A(FF,FF,FF,99)A(FF,FF,CC,00)A(FF,FF,CC,00)A(FF,FF,CC,00)A(FF,FF,CC,00)A(FF,FF,CC,00)A(FF,CC,99,00)A(FF,04,04,04)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,66,66,00)A(FF,FF,FF,99)A(FF,FF,FF,FF)A(FF,FF,CC,00)A(FF,FF,FF,FF)A(FF,66,66,00)A(FF,66,66,00)A(FF,66,66,00)A(FF,66,66,00)A(FF,66,66,00)A(FF,FF,CC,00)A(FF,FF,CC,00)A(FF,FF,CC,00)A(FF,CC,99,00)A(FF,04,04,04)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,66,66,00)A(FF,FF,FF,99)A(FF,FF,CC,00)A(FF,FF,FF,FF)A(FF,66,66,00)A(FF,FF,FB,F0)A(FF,FF,FF,99)A(FF,FF,FF,99)A(FF,FF,FF,99)A(FF,CC,CC,99)A(FF,04,04,04)A(FF,FF,CC,00)A(FF,CC,99,00)A(FF,CC,99,00)A(FF,04,04,04)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)
A(00,01,01,01)A(FF,66,66,00)A(FF,FF,FF,99)A(FF,FF,FF,FF)A(FF,66,66,00)A(FF,66,66,00)A(FF,66,66,00)A(FF,66,66,00)A(FF,66,66,00)A(FF,66,66,00)A(FF,66,66,00)A(FF,66,66,00)A(FF,66,66,00)A(FF,66,66,00)A(FF,66,66,00)A(FF,66,66,00)A(FF,66,66,00)A(FF,66,66,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,66,66,00)A(FF,FF,FF,99)A(FF,FF,CC,00)A(FF,66,66,00)A(FF,FF,FF,99)A(FF,FF,FF,99)A(FF,FF,FF,99)A(FF,FF,FF,99)A(FF,FF,FF,99)A(FF,FF,FF,99)A(FF,FF,FF,99)A(FF,FF,FF,99)A(FF,FF,FF,99)A(FF,FF,FF,99)A(FF,FF,FF,99)A(FF,FF,FF,99)A(FF,FF,FF,99)A(FF,04,04,04)A(00,01,01,01)A(00,01,01,01)A(FF,66,66,00)A(FF,FF,FF,99)A(FF,FF,FF,99)A(FF,66,66,00)A(FF,FF,FF,99)A(FF,FF,CC,00)A(FF,FF,FF,FF)A(FF,FF,CC,00)A(FF,FF,FF,FF)A(FF,FF,CC,00)A(FF,FF,FF,99)A(FF,FF,CC,00)A(FF,FF,CC,00)A(FF,FF,CC,00)A(FF,FF,CC,00)A(FF,FF,CC,00)A(FF,CC,99,00)A(FF,04,04,04)A(00,01,01,01)A(00,01,01,01)A(FF,66,66,00)A(FF,FF,FF,99)A(FF,FF,CC,00)A(FF,66,66,00)A(FF,FF,FF,99)A(FF,FF,FF,FF)A(FF,FF,CC,00)A(FF,FF,FF,FF)A(FF,FF,CC,00)A(FF,FF,FF,99)A(FF,FF,CC,00)A(FF,FF,FF,99)A(FF,FF,CC,00)A(FF,FF,CC,00)A(FF,FF,CC,00)A(FF,FF,CC,00)A(FF,CC,99,00)A(FF,04,04,04)A(00,01,01,01)
A(00,01,01,01)A(FF,66,66,00)A(FF,FF,FF,99)A(FF,FF,FF,99)A(FF,66,66,00)A(FF,FF,FF,99)A(FF,FF,CC,00)A(FF,FF,FF,FF)A(FF,FF,CC,00)A(FF,FF,FF,99)A(FF,FF,CC,00)A(FF,FF,FF,99)A(FF,FF,CC,00)A(FF,FF,CC,00)A(FF,FF,CC,00)A(FF,FF,CC,00)A(FF,CC,99,00)A(FF,CC,99,00)A(FF,04,04,04)A(00,01,01,01)A(00,01,01,01)A(FF,04,04,04)A(FF,04,04,04)A(FF,04,04,04)A(FF,66,66,00)A(FF,FF,FF,99)A(FF,FF,FF,FF)A(FF,FF,CC,00)A(FF,FF,FF,99)A(FF,FF,CC,00)A(FF,FF,FF,99)A(FF,FF,CC,00)A(FF,FF,CC,00)A(FF,FF,CC,00)A(FF,FF,CC,00)A(FF,CC,99,00)A(FF,FF,CC,00)A(FF,CC,99,00)A(FF,04,04,04)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,66,66,00)A(FF,FF,FF,99)A(FF,FF,CC,00)A(FF,FF,FF,99)A(FF,FF,CC,00)A(FF,FF,FF,99)A(FF,FF,CC,00)A(FF,FF,CC,00)A(FF,FF,CC,00)A(FF,FF,CC,00)A(FF,CC,99,00)A(FF,FF,CC,00)A(FF,CC,99,00)A(FF,CC,99,00)A(FF,04,04,04)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,66,66,00)A(FF,FF,FF,99)A(FF,FF,FF,99)A(FF,FF,CC,00)A(FF,FF,FF,99)A(FF,FF,CC,00)A(FF,FF,CC,00)A(FF,FF,CC,00)A(FF,FF,CC,00)A(FF,CC,99,00)A(FF,FF,CC,00)A(FF,CC,99,00)A(FF,FF,CC,00)A(FF,CC,99,00)A(FF,04,04,04)A(00,01,01,01)
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,66,66,00)A(FF,FF,FF,99)A(FF,FF,CC,00)A(FF,FF,FF,99)A(FF,FF,CC,00)A(FF,FF,CC,00)A(FF,FF,CC,00)A(FF,FF,CC,00)A(FF,CC,99,00)A(FF,FF,CC,00)A(FF,CC,99,00)A(FF,FF,CC,00)A(FF,CC,99,00)A(FF,CC,99,00)A(FF,04,04,04)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,66,66,00)A(FF,FF,FF,99)A(FF,FF,FF,99)A(FF,FF,CC,00)A(FF,FF,CC,00)A(FF,FF,CC,00)A(FF,FF,CC,00)A(FF,CC,99,00)A(FF,FF,CC,00)A(FF,CC,99,00)A(FF,FF,CC,00)A(FF,CC,99,00)A(FF,CC,99,00)A(FF,CC,99,00)A(FF,04,04,04)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,04,04,04)A(FF,04,04,04)A(FF,04,04,04)A(FF,04,04,04)A(FF,04,04,04)A(FF,04,04,04)A(FF,04,04,04)A(FF,04,04,04)A(FF,04,04,04)A(FF,04,04,04)A(FF,04,04,04)A(FF,04,04,04)A(FF,04,04,04)A(FF,04,04,04)A(FF,04,04,04)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01);
memcpy ((EIF_NATURAL_32 *)$a_ptr + $a_offset, &l_data, sizeof l_data - 1);
}
}"
end
build_colors (a_ptr: POINTER)
-- Build `colors'.
do
c_colors_0 (a_ptr, 0)
end
feature {NONE} -- Image data filling.
fill_memory
-- Fill image data into memory.
local
l_pointer: POINTER
do
check attached {EV_PIXEL_BUFFER_IMP} implementation as l_imp then
l_pointer := l_imp.data_ptr
if l_pointer /= default_pointer then
build_colors (l_pointer)
l_imp.unlock
end
end
end
end -- ICON_FOLDERS_COLOR

View File

@ -0,0 +1,73 @@
note
description: "Pixel buffer that replaces original image file.%
%The original version of this class has been generated by Image Eiffel Code."
class
ICON_FORMAT_EXPORTEDS_COLOR
inherit
EV_PIXEL_BUFFER
create
make
feature {NONE} -- Initialization
make
-- Initialization
do
make_with_size (16, 16)
fill_memory
end
feature {NONE} -- Image data
c_colors_0 (a_ptr: POINTER; a_offset: INTEGER)
-- Fill `a_ptr' with colors data from `a_offset'.
external
"C inline"
alias
"{
{
#define B(q) \
#q
#ifdef EIF_WINDOWS
#define A(a,r,g,b) \
B(\x##b\x##g\x##r\x##a)
#else
#define A(a,r,g,b) \
B(\x##r\x##g\x##b\x##a)
#endif
char l_data[] =
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(00,01,01,01)A(FF,00,00,80)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(FF,00,00,80)A(00,01,01,01)A(FF,00,00,80)A(00,01,01,01)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(00,01,01,01)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(FF,00,96,31)A(FF,00,96,31)A(FF,00,50,00)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,96,31)A(FF,00,80,00)A(FF,00,50,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,96,31)A(FF,00,80,00)A(FF,00,50,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,96,31)A(FF,00,96,31)A(FF,00,96,31)A(FF,00,96,31)A(FF,00,80,00)A(FF,00,80,00)A(FF,00,80,00)A(FF,00,80,00)A(FF,00,50,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,96,31)A(FF,00,80,00)A(FF,00,80,00)A(FF,00,80,00)A(FF,00,80,00)A(FF,00,80,00)A(FF,00,80,00)A(FF,00,80,00)A(FF,00,50,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,50,00)A(FF,00,50,00)A(FF,00,50,00)A(FF,00,80,00)A(FF,00,80,00)A(FF,00,50,00)A(FF,00,50,00)A(FF,00,50,00)A(FF,00,50,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,80,00)A(FF,00,80,00)A(FF,00,50,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,80,00)A(FF,00,80,00)A(FF,00,50,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(FF,00,50,00)A(FF,00,50,00)A(FF,00,50,00)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(00,01,01,01)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(00,01,01,01)A(FF,00,00,80)A(00,01,01,01)A(FF,00,00,80)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(FF,00,00,80)A(00,01,01,01)
A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(00,01,01,01);
memcpy ((EIF_NATURAL_32 *)$a_ptr + $a_offset, &l_data, sizeof l_data - 1);
}
}"
end
build_colors (a_ptr: POINTER)
-- Build `colors'.
do
c_colors_0 (a_ptr, 0)
end
feature {NONE} -- Image data filling.
fill_memory
-- Fill image data into memory.
local
l_pointer: POINTER
do
if attached {EV_PIXEL_BUFFER_IMP} implementation as l_imp then
l_pointer := l_imp.data_ptr
if not l_pointer.is_default_pointer then
build_colors (l_pointer)
l_imp.unlock
end
end
end
end -- ICON_FORMAT_EXPORTEDS_COLOR

View File

@ -0,0 +1,73 @@
note
description: "Pixel buffer that replaces original image file.%
%The original version of this class has been generated by Image Eiffel Code."
class
ICON_FORMAT_TEXT_COLOR
inherit
EV_PIXEL_BUFFER
create
make
feature {NONE} -- Initialization
make
-- Initialization
do
make_with_size (16, 16)
fill_memory
end
feature {NONE} -- Image data
c_colors_0 (a_ptr: POINTER; a_offset: INTEGER)
-- Fill `a_ptr' with colors data from `a_offset'.
external
"C inline"
alias
"{
{
#define B(q) \
#q
#ifdef EIF_WINDOWS
#define A(a,r,g,b) \
B(\x##b\x##g\x##r\x##a)
#else
#define A(a,r,g,b) \
B(\x##r\x##g\x##b\x##a)
#endif
char l_data[] =
A(00,01,01,01)A(FF,62,62,62)A(FF,62,62,62)A(FF,62,62,62)A(FF,62,62,62)A(FF,62,62,62)A(FF,62,62,62)A(FF,62,62,62)A(FF,62,62,62)A(FF,62,62,62)A(FF,62,62,62)A(FF,62,62,62)A(FF,62,62,62)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,62,62,62)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,62,62,62)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,62,62,62)A(FF,F2,F2,F2)A(FF,4A,4A,4A)A(FF,4A,4A,4A)A(FF,4A,4A,4A)A(FF,4A,4A,4A)A(FF,4A,4A,4A)A(FF,4A,4A,4A)A(FF,4A,4A,4A)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,62,62,62)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)
A(00,01,01,01)A(FF,62,62,62)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,4A,4A,4A)A(FF,4A,4A,4A)A(FF,4A,4A,4A)A(FF,4A,4A,4A)A(FF,4A,4A,4A)A(FF,4A,4A,4A)A(FF,4A,4A,4A)A(FF,E6,E6,E6)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,62,62,62)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,E6,E6,E6)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,62,62,62)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,4A,4A,4A)A(FF,4A,4A,4A)A(FF,4A,4A,4A)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,E6,E6,E6)A(FF,F2,F2,F2)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,62,62,62)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,E6,E6,E6)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,62,62,62)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,4A,4A,4A)A(FF,4A,4A,4A)A(FF,4A,4A,4A)A(FF,4A,4A,4A)A(FF,4A,4A,4A)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)
A(00,01,01,01)A(FF,62,62,62)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,E6,E6,E6)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,DA,DA,DB)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,62,62,62)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,E6,E6,E6)A(FF,4A,4A,4A)A(FF,4A,4A,4A)A(FF,4A,4A,4A)A(FF,4A,4A,4A)A(FF,4A,4A,4A)A(FF,4A,4A,4A)A(FF,DA,DA,DB)A(FF,DA,DA,DB)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,62,62,62)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,DA,DA,DB)A(FF,E6,E6,E6)A(FF,DA,DA,DB)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,62,62,62)A(FF,F2,F2,F2)A(FF,E6,E6,E6)A(FF,4A,4A,4A)A(FF,4A,4A,4A)A(FF,4A,4A,4A)A(FF,E6,E6,E6)A(FF,DA,DA,DB)A(FF,DA,DA,DB)A(FF,DA,DA,DB)A(FF,DA,DA,DB)A(FF,DA,DA,DB)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,62,62,62)A(FF,F2,F2,F2)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,DA,DA,DB)A(FF,DA,DA,DB)A(FF,DA,DA,DB)A(FF,DA,DA,DB)A(FF,DA,DA,DB)A(FF,DA,DA,DB)A(FF,DA,DA,DB)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)
A(00,01,01,01)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01);
memcpy ((EIF_NATURAL_32 *)$a_ptr + $a_offset, &l_data, sizeof l_data - 1);
}
}"
end
build_colors (a_ptr: POINTER)
-- Build `colors'.
do
c_colors_0 (a_ptr, 0)
end
feature {NONE} -- Image data filling.
fill_memory
-- Fill image data into memory.
local
l_pointer: POINTER
do
check attached {EV_PIXEL_BUFFER_IMP} implementation as l_imp then
l_pointer := l_imp.data_ptr
if l_pointer /= default_pointer then
build_colors (l_pointer)
l_imp.unlock
end
end
end
end -- ICON_FORMAT_TEXT_COLOR

View File

@ -0,0 +1,73 @@
note
description: "Pixel buffer that replaces original image file.%
%The original version of this class has been generated by Image Eiffel Code."
class
ICON_FORTH_COLOR
inherit
EV_PIXEL_BUFFER
create
make
feature {NONE} -- Initialization
make
-- Initialization
do
make_with_size (16, 16)
fill_memory
end
feature {NONE} -- Image data
c_colors_0 (a_ptr: POINTER; a_offset: INTEGER)
-- Fill `a_ptr' with colors data from `a_offset'.
external
"C inline"
alias
"{
{
#define B(q) \
#q
#ifdef EIF_WINDOWS
#define A(a,r,g,b) \
B(\x##b\x##g\x##r\x##a)
#else
#define A(a,r,g,b) \
B(\x##r\x##g\x##b\x##a)
#endif
char l_data[] =
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,33,66,FF)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,33,66,FF)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,33,66,FF)A(FF,33,CC,FF)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,33,66,FF)A(FF,CC,FF,FF)A(FF,33,CC,FF)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)
A(00,01,01,01)A(FF,33,66,FF)A(FF,33,66,FF)A(FF,33,66,FF)A(FF,33,66,FF)A(FF,33,66,FF)A(FF,33,66,FF)A(FF,33,66,FF)A(FF,33,66,FF)A(FF,33,66,FF)A(FF,CC,FF,FF)A(FF,99,FF,FF)A(FF,33,CC,FF)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,33,66,FF)A(FF,CC,FF,FF)A(FF,CC,FF,FF)A(FF,CC,FF,FF)A(FF,CC,FF,FF)A(FF,CC,FF,FF)A(FF,CC,FF,FF)A(FF,CC,FF,FF)A(FF,CC,FF,FF)A(FF,CC,FF,FF)A(FF,33,CC,FF)A(FF,99,FF,FF)A(FF,33,CC,FF)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(FF,33,66,FF)A(FF,CC,FF,FF)A(FF,33,CC,FF)A(FF,33,CC,FF)A(FF,33,CC,FF)A(FF,33,CC,FF)A(FF,33,CC,FF)A(FF,33,CC,FF)A(FF,33,CC,FF)A(FF,33,CC,FF)A(FF,33,CC,FF)A(FF,33,CC,FF)A(FF,33,CC,FF)A(FF,33,66,FF)A(FF,00,00,00)A(00,01,01,01)A(FF,33,66,FF)A(FF,33,99,FF)A(FF,33,99,FF)A(FF,33,99,FF)A(FF,33,99,FF)A(FF,33,99,FF)A(FF,33,99,FF)A(FF,33,99,FF)A(FF,33,99,FF)A(FF,33,99,FF)A(FF,33,CC,FF)A(FF,33,CC,FF)A(FF,33,66,FF)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,33,99,FF)A(FF,33,CC,FF)A(FF,33,66,FF)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,33,99,FF)A(FF,33,66,FF)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,33,66,FF)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01);
memcpy ((EIF_NATURAL_32 *)$a_ptr + $a_offset, &l_data, sizeof l_data - 1);
}
}"
end
build_colors (a_ptr: POINTER)
-- Build `colors'.
do
c_colors_0 (a_ptr, 0)
end
feature {NONE} -- Image data filling.
fill_memory
-- Fill image data into memory.
local
l_pointer: POINTER
do
check attached {EV_PIXEL_BUFFER_IMP} implementation as l_imp then
l_pointer := l_imp.data_ptr
if l_pointer /= default_pointer then
build_colors (l_pointer)
l_imp.unlock
end
end
end
end -- ICON_FORTH_COLOR

View File

@ -0,0 +1,73 @@
note
description: "Pixel buffer that replaces original image file.%
%The original version of this class has been generated by Image Eiffel Code."
class
ICON_HELP_TOOL_COLOR
inherit
EV_PIXEL_BUFFER
create
make
feature {NONE} -- Initialization
make
-- Initialization
do
make_with_size (16, 16)
fill_memory
end
feature {NONE} -- Image data
c_colors_0 (a_ptr: POINTER; a_offset: INTEGER)
-- Fill `a_ptr' with colors data from `a_offset'.
external
"C inline"
alias
"{
{
#define B(q) \
#q
#ifdef EIF_WINDOWS
#define A(a,r,g,b) \
B(\x##b\x##g\x##r\x##a)
#else
#define A(a,r,g,b) \
B(\x##r\x##g\x##b\x##a)
#endif
char l_data[] =
A(00,01,01,01)A(00,01,01,01)A(FF,73,4A,00)A(FF,73,4A,00)A(FF,73,4A,00)A(FF,73,4A,00)A(FF,73,4A,00)A(FF,73,4A,00)A(FF,73,4A,00)A(FF,73,4A,00)A(FF,73,4A,00)A(FF,73,4A,00)A(FF,73,4A,00)A(FF,73,4A,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,73,4A,00)A(FF,FF,F0,D4)A(FF,FF,F0,D4)A(FF,FF,F0,D4)A(FF,FF,F0,D4)A(FF,FF,F0,D4)A(FF,FF,F0,D4)A(FF,FF,F0,D4)A(FF,FF,F0,D4)A(FF,FF,F0,D4)A(FF,FF,F0,D4)A(FF,FF,F0,D4)A(FF,FF,F0,D4)A(FF,50,32,00)A(00,01,01,01)A(FF,73,4A,00)A(FF,FF,F0,D4)A(FF,FF,F0,D4)A(FF,FF,F0,D4)A(FF,FF,E2,B1)A(FF,FF,F0,D4)A(FF,FF,E2,B1)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,FF,D4,8E)A(FF,50,32,00)A(FF,73,4A,00)A(FF,FF,F0,D4)A(FF,FF,F0,D4)A(FF,FF,E2,B1)A(FF,FF,F0,D4)A(FF,FF,E2,B1)A(FF,00,00,00)A(FF,94,83,67)A(FF,FF,E2,B1)A(FF,94,83,67)A(FF,00,00,00)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,FF,D4,8E)A(FF,FF,D4,8E)A(FF,50,32,00)A(FF,73,4A,00)A(FF,FF,F0,D4)A(FF,FF,F0,D4)A(FF,FF,F0,D4)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,94,83,67)A(FF,00,00,00)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,FF,D4,8E)A(FF,50,32,00)
A(FF,73,4A,00)A(FF,FF,F0,D4)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,94,83,67)A(FF,00,00,00)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,FF,D4,8E)A(FF,FF,D4,8E)A(FF,50,32,00)A(FF,73,4A,00)A(FF,FF,F0,D4)A(FF,FF,F0,D4)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,00,00,00)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,FF,D4,8E)A(FF,FF,E2,B1)A(FF,FF,D4,8E)A(FF,50,32,00)A(FF,73,4A,00)A(FF,FF,F0,D4)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,00,00,00)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,FF,D4,8E)A(FF,FF,D4,8E)A(FF,50,32,00)A(FF,73,4A,00)A(FF,FF,F0,D4)A(FF,FF,F0,D4)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,FF,D4,8E)A(FF,FF,D4,8E)A(FF,FF,D4,8E)A(FF,FF,D4,8E)A(FF,50,32,00)A(FF,73,4A,00)A(FF,FF,F0,D4)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,FF,E2,B1)A(FF,00,00,00)A(FF,FF,E2,B1)A(FF,FF,D4,8E)A(FF,FF,E2,B1)A(FF,FF,D4,8E)A(FF,FF,D4,8E)A(FF,FF,D4,8E)A(FF,50,32,00)
A(00,01,01,01)A(FF,73,4A,00)A(FF,FF,D4,8E)A(FF,FF,D4,8E)A(FF,FF,D4,8E)A(FF,FF,D4,8E)A(FF,FF,D4,8E)A(FF,FF,D4,8E)A(FF,FF,D4,8E)A(FF,FF,D4,8E)A(FF,FF,D4,8E)A(FF,FF,D4,8E)A(FF,FF,D4,8E)A(FF,FF,D4,8E)A(FF,50,32,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,50,32,00)A(FF,50,32,00)A(FF,50,32,00)A(FF,50,32,00)A(FF,50,32,00)A(FF,50,32,00)A(FF,50,32,00)A(FF,FF,F0,D4)A(FF,FF,E2,B1)A(FF,FF,D4,8E)A(FF,50,32,00)A(FF,50,32,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,73,4A,00)A(FF,FF,F0,D4)A(FF,FF,D4,8E)A(FF,50,32,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,73,4A,00)A(FF,FF,D4,8E)A(FF,50,32,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,73,4A,00)A(FF,50,32,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,50,32,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01);
memcpy ((EIF_NATURAL_32 *)$a_ptr + $a_offset, &l_data, sizeof l_data - 1);
}
}"
end
build_colors (a_ptr: POINTER)
-- Build `colors'.
do
c_colors_0 (a_ptr, 0)
end
feature {NONE} -- Image data filling.
fill_memory
-- Fill image data into memory.
local
l_pointer: POINTER
do
check attached {EV_PIXEL_BUFFER_IMP} implementation as l_imp then
l_pointer := l_imp.data_ptr
if l_pointer /= default_pointer then
build_colors (l_pointer)
l_imp.unlock
end
end
end
end -- ICON_HELP_TOOL_COLOR

View File

@ -0,0 +1,70 @@
note
description: "Pixel buffer that replaces original image file.%
%The original version of this class has been generated by Image Eiffel Code."
class
ICON_MAXIMIZE_COLOR
inherit
EV_PIXEL_BUFFER
create
make
feature {NONE} -- Initialization
make
-- Initialization
do
make_with_size (8, 8)
fill_memory
end
feature {NONE} -- Image data
c_colors_0 (a_ptr: POINTER; a_offset: INTEGER)
-- Fill `a_ptr' with colors data from `a_offset'.
external
"C inline"
alias
"{
{
#define B(q) \
#q
#ifdef EIF_WINDOWS
#define A(a,r,g,b) \
B(\x##b\x##g\x##r\x##a)
#else
#define A(a,r,g,b) \
B(\x##r\x##g\x##b\x##a)
#endif
char l_data[] =
A(00,01,01,01)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(00,01,01,01)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(00,01,01,01)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(00,01,01,01)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(00,01,01,01)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(00,01,01,01)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(00,01,01,01)A(FF,00,00,80)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01);
memcpy ((EIF_NATURAL_32 *)$a_ptr + $a_offset, &l_data, sizeof l_data - 1);
}
}"
end
build_colors (a_ptr: POINTER)
-- Build `colors'.
do
c_colors_0 (a_ptr, 0)
end
feature {NONE} -- Image data filling.
fill_memory
-- Fill image data into memory.
local
l_pointer: POINTER
do
check attached {EV_PIXEL_BUFFER_IMP} implementation as l_imp then
l_pointer := l_imp.data_ptr
if l_pointer /= default_pointer then
build_colors (l_pointer)
l_imp.unlock
end
end
end
end -- ICON_MAXIMIZE_COLOR

View File

@ -0,0 +1,73 @@
note
description: "Pixel buffer that replaces original image file.%
%The original version of this class has been generated by Image Eiffel Code."
class
ICON_MINIMIZE_ALL_COLOR
inherit
EV_PIXEL_BUFFER
create
make
feature {NONE} -- Initialization
make
-- Initialization
do
make_with_size (16, 16)
fill_memory
end
feature {NONE} -- Image data
c_colors_0 (a_ptr: POINTER; a_offset: INTEGER)
-- Fill `a_ptr' with colors data from `a_offset'.
external
"C inline"
alias
"{
{
#define B(q) \
#q
#ifdef EIF_WINDOWS
#define A(a,r,g,b) \
B(\x##b\x##g\x##r\x##a)
#else
#define A(a,r,g,b) \
B(\x##r\x##g\x##b\x##a)
#endif
char l_data[] =
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,00,00,00)A(FF,00,00,80)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,80)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,00,00,00)A(FF,00,00,00)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,6E,6E,6E)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,00,00,00)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,00,00,00)
A(FF,00,00,00)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,6E,6E,6E)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,F2,F2,F2)A(FF,00,00,00)A(FF,6E,6E,6E)A(FF,6E,6E,6E)A(FF,6E,6E,6E)A(FF,00,00,00)A(FF,00,00,00)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,6E,6E,6E)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,00,00,00)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,DA,DA,DA)A(FF,00,00,00)A(FF,00,00,00)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,6E,6E,6E)A(FF,6E,6E,6E)A(FF,6E,6E,6E)A(FF,6E,6E,6E)A(FF,6E,6E,6E)A(FF,6E,6E,6E)A(FF,6E,6E,6E)A(FF,00,00,00)A(FF,DA,DA,DA)A(FF,DA,DA,DA)A(FF,E6,E6,E6)A(FF,00,00,00)A(FF,00,00,00)A(FF,F2,F2,F2)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,6E,6E,6E)A(FF,F2,F2,F2)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,DA,DA,DA)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,F2,F2,F2)A(FF,E6,E6,E6)A(FF,F2,F2,F2)A(FF,6E,6E,6E)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,DA,DA,DA)A(FF,DA,DA,DA)A(FF,DA,DA,DA)A(FF,E6,E6,E6)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)
A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,25,73)A(FF,00,25,73)A(FF,00,25,73)A(FF,00,25,73)A(FF,00,25,73)A(00,01,01,01)A(00,01,01,01)A(FF,00,25,73)A(FF,00,25,73)A(FF,00,25,73)A(FF,00,25,73)A(FF,00,25,73)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,25,73)A(FF,00,25,73)A(FF,00,25,73)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,25,73)A(FF,00,25,73)A(FF,00,25,73)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,25,73)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,25,73)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)
A(FF,62,62,62)A(FF,62,62,62)A(FF,62,62,62)A(FF,62,62,62)A(FF,62,62,62)A(FF,62,62,62)A(FF,62,62,62)A(FF,62,62,62)A(FF,62,62,62)A(FF,62,62,62)A(FF,62,62,62)A(FF,62,62,62)A(FF,62,62,62)A(FF,62,62,62)A(FF,62,62,62)A(FF,62,62,62);
memcpy ((EIF_NATURAL_32 *)$a_ptr + $a_offset, &l_data, sizeof l_data - 1);
}
}"
end
build_colors (a_ptr: POINTER)
-- Build `colors'.
do
c_colors_0 (a_ptr, 0)
end
feature {NONE} -- Image data filling.
fill_memory
-- Fill image data into memory.
local
l_pointer: POINTER
do
check attached {EV_PIXEL_BUFFER_IMP} implementation as l_imp then
l_pointer := l_imp.data_ptr
if l_pointer /= default_pointer then
build_colors (l_pointer)
l_imp.unlock
end
end
end
end -- ICON_MINIMIZE_ALL_COLOR

View File

@ -0,0 +1,70 @@
note
description: "Pixel buffer that replaces original image file.%
%The original version of this class has been generated by Image Eiffel Code."
class
ICON_MINIMIZE_COLOR
inherit
EV_PIXEL_BUFFER
create
make
feature {NONE} -- Initialization
make
-- Initialization
do
make_with_size (8, 8)
fill_memory
end
feature {NONE} -- Image data
c_colors_0 (a_ptr: POINTER; a_offset: INTEGER)
-- Fill `a_ptr' with colors data from `a_offset'.
external
"C inline"
alias
"{
{
#define B(q) \
#q
#ifdef EIF_WINDOWS
#define A(a,r,g,b) \
B(\x##b\x##g\x##r\x##a)
#else
#define A(a,r,g,b) \
B(\x##r\x##g\x##b\x##a)
#endif
char l_data[] =
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01);
memcpy ((EIF_NATURAL_32 *)$a_ptr + $a_offset, &l_data, sizeof l_data - 1);
}
}"
end
build_colors (a_ptr: POINTER)
-- Build `colors'.
do
c_colors_0 (a_ptr, 0)
end
feature {NONE} -- Image data filling.
fill_memory
-- Fill image data into memory.
local
l_pointer: POINTER
do
check attached {EV_PIXEL_BUFFER_IMP} implementation as l_imp then
l_pointer := l_imp.data_ptr
if l_pointer /= default_pointer then
build_colors (l_pointer)
l_imp.unlock
end
end
end
end -- ICON_MINIMIZE_COLOR

View File

@ -0,0 +1,73 @@
note
description: "Pixel buffer that replaces original image file.%
%The original version of this class has been generated by Image Eiffel Code."
class
ICON_NEW_CLASS_COLOR
inherit
EV_PIXEL_BUFFER
create
make
feature {NONE} -- Initialization
make
-- Initialization
do
make_with_size (16, 16)
fill_memory
end
feature {NONE} -- Image data
c_colors_0 (a_ptr: POINTER; a_offset: INTEGER)
-- Fill `a_ptr' with colors data from `a_offset'.
external
"C inline"
alias
"{
{
#define B(q) \
#q
#ifdef EIF_WINDOWS
#define A(a,r,g,b) \
B(\x##b\x##g\x##r\x##a)
#else
#define A(a,r,g,b) \
B(\x##r\x##g\x##b\x##a)
#endif
char l_data[] =
A(FF,FF,FF,00)A(00,01,01,01)A(00,01,01,01)A(FF,80,80,80)A(FF,FF,FF,00)A(00,01,01,01)A(00,01,01,01)A(FF,80,80,80)A(FF,FF,FF,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,80,80,80)A(FF,FF,FF,00)A(00,01,01,01)A(FF,80,80,80)A(FF,FF,FF,00)A(00,01,01,01)A(FF,80,80,80)A(FF,FF,FF,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,80,80,80)A(FF,FF,FF,00)A(FF,80,80,80)A(FF,FF,FF,00)A(FF,80,80,80)A(FF,FF,FF,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,80,80,80)A(FF,FF,FF,00)A(FF,FF,FF,00)A(FF,FF,FF,00)A(FF,00,62,96)A(FF,00,62,96)A(FF,00,62,96)A(FF,00,62,96)A(FF,00,62,96)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,80,80,80)A(FF,FF,FF,00)A(FF,FF,FF,00)A(FF,FF,FF,00)A(FF,00,92,DC)A(FF,00,92,DC)A(FF,00,92,DC)A(FF,00,92,DC)A(FF,00,92,DC)A(FF,00,62,96)A(FF,00,62,96)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)
A(00,01,01,01)A(FF,80,80,80)A(FF,FF,FF,00)A(FF,80,80,80)A(FF,FF,FF,00)A(FF,80,80,80)A(FF,FF,FF,00)A(FF,00,62,96)A(FF,00,62,96)A(FF,00,62,96)A(FF,00,62,96)A(FF,00,92,DC)A(FF,00,4A,73)A(FF,00,00,73)A(00,01,01,01)A(00,01,01,01)A(FF,80,80,80)A(FF,FF,FF,00)A(FF,00,92,DC)A(FF,80,80,80)A(FF,FF,FF,00)A(FF,00,62,96)A(FF,80,80,80)A(FF,FF,FF,00)A(FF,00,62,96)A(FF,00,62,96)A(FF,00,62,96)A(FF,00,62,96)A(FF,00,62,96)A(FF,00,4A,73)A(FF,00,00,73)A(00,01,01,01)A(FF,FF,FF,00)A(FF,00,62,96)A(FF,00,92,DC)A(FF,80,80,80)A(FF,FF,FF,00)A(FF,00,62,96)A(FF,00,62,96)A(FF,80,80,80)A(FF,00,62,96)A(FF,00,62,96)A(FF,00,62,96)A(FF,00,62,96)A(FF,00,62,96)A(FF,00,4A,73)A(FF,00,00,73)A(00,01,01,01)A(00,01,01,01)A(FF,00,62,96)A(FF,00,92,DC)A(FF,00,62,96)A(FF,00,62,96)A(FF,00,62,96)A(FF,00,62,96)A(FF,00,62,96)A(FF,00,62,96)A(FF,00,62,96)A(FF,00,62,96)A(FF,00,62,96)A(FF,00,62,96)A(FF,00,4A,73)A(FF,00,00,73)A(00,01,01,01)A(00,01,01,01)A(FF,00,62,96)A(FF,00,92,DC)A(FF,00,62,96)A(FF,00,62,96)A(FF,00,62,96)A(FF,00,62,96)A(FF,00,62,96)A(FF,00,62,96)A(FF,00,62,96)A(FF,00,62,96)A(FF,00,62,96)A(FF,00,4A,73)A(FF,00,4A,73)A(FF,00,00,73)A(00,01,01,01)
A(00,01,01,01)A(00,01,01,01)A(FF,00,62,96)A(FF,00,92,DC)A(FF,00,4A,73)A(FF,00,62,96)A(FF,00,62,96)A(FF,00,62,96)A(FF,00,62,96)A(FF,00,62,96)A(FF,00,4A,73)A(FF,00,4A,73)A(FF,00,4A,73)A(FF,00,00,73)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,62,96)A(FF,00,00,73)A(FF,00,4A,73)A(FF,00,4A,73)A(FF,00,4A,73)A(FF,00,4A,73)A(FF,00,4A,73)A(FF,00,4A,73)A(FF,00,00,73)A(FF,00,00,73)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,73)A(FF,00,00,73)A(FF,00,00,73)A(FF,00,00,73)A(FF,00,00,73)A(FF,00,00,73)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01);
memcpy ((EIF_NATURAL_32 *)$a_ptr + $a_offset, &l_data, sizeof l_data - 1);
}
}"
end
build_colors (a_ptr: POINTER)
-- Build `colors'.
do
c_colors_0 (a_ptr, 0)
end
feature {NONE} -- Image data filling.
fill_memory
-- Fill image data into memory.
local
l_pointer: POINTER
do
check attached {EV_PIXEL_BUFFER_IMP} implementation as l_imp then
l_pointer := l_imp.data_ptr
if l_pointer /= default_pointer then
build_colors (l_pointer)
l_imp.unlock
end
end
end
end -- ICON_NEW_CLASS_COLOR

View File

@ -0,0 +1,73 @@
note
description: "Pixel buffer that replaces original image file.%
%The original version of this class has been generated by Image Eiffel Code."
class
ICON_NEW_DEVELOPMENT_TOOL_COLOR
inherit
EV_PIXEL_BUFFER
create
make
feature {NONE} -- Initialization
make
-- Initialization
do
make_with_size (16, 16)
fill_memory
end
feature {NONE} -- Image data
c_colors_0 (a_ptr: POINTER; a_offset: INTEGER)
-- Fill `a_ptr' with colors data from `a_offset'.
external
"C inline"
alias
"{
{
#define B(q) \
#q
#ifdef EIF_WINDOWS
#define A(a,r,g,b) \
B(\x##b\x##g\x##r\x##a)
#else
#define A(a,r,g,b) \
B(\x##r\x##g\x##b\x##a)
#endif
char l_data[] =
A(FF,FF,FF,00)A(00,01,01,01)A(00,01,01,01)A(FF,80,80,80)A(FF,FF,FF,00)A(00,01,01,01)A(00,01,01,01)A(FF,80,80,80)A(FF,FF,FF,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,80,80,80)A(FF,FF,FF,00)A(00,01,01,01)A(FF,80,80,80)A(FF,FF,FF,00)A(00,01,01,01)A(FF,80,80,80)A(FF,FF,FF,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,80,80,80)A(FF,FF,FF,00)A(FF,80,80,80)A(FF,FF,FF,00)A(FF,80,80,80)A(FF,FF,FF,00)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(00,01,01,01)A(FF,00,00,80)A(FF,80,80,80)A(FF,FF,FF,00)A(FF,FF,FF,00)A(FF,FF,FF,00)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,80)A(00,01,01,01)A(FF,00,00,80)A(FF,80,80,80)A(FF,FF,FF,00)A(FF,FF,FF,00)A(FF,FF,FF,00)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,80)
A(00,01,01,01)A(FF,80,80,80)A(FF,FF,FF,00)A(FF,80,80,80)A(FF,FF,FF,00)A(FF,80,80,80)A(FF,FF,FF,00)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,00,00,00)A(FF,80,80,80)A(FF,FF,FF,00)A(FF,F2,F2,F2)A(FF,80,80,80)A(FF,FF,FF,00)A(FF,F2,F2,F2)A(FF,80,80,80)A(FF,FF,FF,00)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,E6,E6,E6)A(FF,00,00,00)A(FF,FF,FF,00)A(FF,00,00,00)A(FF,F2,F2,F2)A(FF,80,80,80)A(FF,FF,FF,00)A(FF,F2,F2,F2)A(FF,6E,6E,6E)A(FF,80,80,80)A(FF,FF,FF,00)A(FF,F2,F2,F2)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,F2,F2,F2)A(FF,E6,E6,E6)A(FF,F2,F2,F2)A(FF,00,00,00)A(00,01,01,01)A(FF,00,00,00)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,6E,6E,6E)A(FF,F2,F2,F2)A(FF,E6,E6,E6)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,F2,F2,F2)A(FF,00,00,00)A(00,01,01,01)A(FF,00,00,00)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,6E,6E,6E)A(FF,F2,F2,F2)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,F2,F2,F2)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,00,00,00)
A(00,01,01,01)A(FF,00,00,00)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,6E,6E,6E)A(FF,6E,6E,6E)A(FF,6E,6E,6E)A(FF,6E,6E,6E)A(FF,6E,6E,6E)A(FF,6E,6E,6E)A(FF,6E,6E,6E)A(FF,6E,6E,6E)A(FF,6E,6E,6E)A(FF,00,00,00)A(00,01,01,01)A(FF,00,00,00)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,E6,E6,E6)A(FF,6E,6E,6E)A(FF,E6,E6,E6)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,DA,DA,DA)A(FF,00,00,00)A(00,01,01,01)A(FF,00,00,00)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,E6,E6,E6)A(FF,F2,F2,F2)A(FF,6E,6E,6E)A(FF,E6,E6,E6)A(FF,F2,F2,F2)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,00,00,00)A(00,01,01,01)A(FF,00,00,00)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,6E,6E,6E)A(FF,F2,F2,F2)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,DA,DA,DA)A(FF,E6,E6,E6)A(FF,DA,DA,DA)A(FF,00,00,00)A(00,01,01,01)A(FF,00,00,00)A(FF,F2,F2,F2)A(FF,E6,E6,E6)A(FF,F2,F2,F2)A(FF,E6,E6,E6)A(FF,6E,6E,6E)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,DA,DA,DA)A(FF,DA,DA,DA)A(FF,E6,E6,E6)A(FF,DA,DA,DA)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,00,00,00)
A(00,01,01,01)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00);
memcpy ((EIF_NATURAL_32 *)$a_ptr + $a_offset, &l_data, sizeof l_data - 1);
}
}"
end
build_colors (a_ptr: POINTER)
-- Build `colors'.
do
c_colors_0 (a_ptr, 0)
end
feature {NONE} -- Image data filling.
fill_memory
-- Fill image data into memory.
local
l_pointer: POINTER
do
check attached {EV_PIXEL_BUFFER_IMP} implementation as l_imp then
l_pointer := l_imp.data_ptr
if l_pointer /= default_pointer then
build_colors (l_pointer)
l_imp.unlock
end
end
end
end -- ICON_NEW_DEVELOPMENT_TOOL_COLOR

View File

@ -0,0 +1,73 @@
note
description: "Pixel buffer that replaces original image file.%
%The original version of this class has been generated by Image Eiffel Code."
class
ICON_NEW_SUPPLIER_COLOR
inherit
EV_PIXEL_BUFFER
create
make
feature {NONE} -- Initialization
make
-- Initialization
do
make_with_size (16, 16)
fill_memory
end
feature {NONE} -- Image data
c_colors_0 (a_ptr: POINTER; a_offset: INTEGER)
-- Fill `a_ptr' with colors data from `a_offset'.
external
"C inline"
alias
"{
{
#define B(q) \
#q
#ifdef EIF_WINDOWS
#define A(a,r,g,b) \
B(\x##b\x##g\x##r\x##a)
#else
#define A(a,r,g,b) \
B(\x##r\x##g\x##b\x##a)
#endif
char l_data[] =
A(00,01,01,01)A(FF,80,80,80)A(FF,FF,FF,00)A(00,01,01,01)A(00,01,01,01)A(FF,80,80,80)A(FF,FF,FF,00)A(00,01,01,01)A(00,01,01,01)A(FF,80,80,80)A(FF,FF,FF,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,80,80,80)A(FF,FF,FF,00)A(00,01,01,01)A(FF,80,80,80)A(FF,FF,FF,00)A(00,01,01,01)A(FF,80,80,80)A(FF,FF,FF,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,80,80,80)A(FF,FF,FF,00)A(FF,80,80,80)A(FF,FF,FF,00)A(FF,80,80,80)A(FF,FF,FF,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,80,80,80)A(FF,FF,FF,00)A(FF,FF,FF,00)A(FF,FF,FF,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,80,80,80)A(FF,FF,FF,00)A(FF,FF,FF,00)A(FF,FF,FF,00)A(FF,00,00,B9)A(FF,00,00,B9)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,80,80,80)A(FF,FF,FF,00)A(FF,80,80,80)A(FF,FF,FF,00)A(FF,80,80,80)A(FF,FF,FF,00)A(FF,25,57,FF)A(FF,00,00,B9)A(FF,00,00,B9)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,80,80,80)A(FF,FF,FF,00)A(FF,00,00,B9)A(FF,80,80,80)A(FF,FF,FF,00)A(FF,00,00,B9)A(FF,80,80,80)A(FF,FF,FF,00)A(FF,25,57,FF)A(FF,25,57,FF)A(FF,00,00,B9)A(FF,00,00,B9)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,50)A(FF,80,80,80)A(FF,FF,FF,00)A(FF,00,00,50)A(FF,00,00,50)A(FF,80,80,80)A(FF,FF,FF,00)A(FF,00,00,50)A(FF,00,00,B9)A(FF,80,80,80)A(FF,FF,FF,00)A(FF,00,00,B9)A(FF,25,57,FF)A(FF,25,57,FF)A(FF,00,00,B9)A(FF,00,00,B9)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,25,57,FF)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,50)A(FF,00,00,50)
A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,50)A(FF,00,00,50)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,50)A(FF,00,00,50)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,50)A(FF,00,00,50)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(00,01,01,01)
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01);
memcpy ((EIF_NATURAL_32 *)$a_ptr + $a_offset, &l_data, sizeof l_data - 1);
}
}"
end
build_colors (a_ptr: POINTER)
-- Build `colors'.
do
c_colors_0 (a_ptr, 0)
end
feature {NONE} -- Image data filling.
fill_memory
-- Fill image data into memory.
local
l_pointer: POINTER
do
check attached {EV_PIXEL_BUFFER_IMP} implementation as l_imp then
l_pointer := l_imp.data_ptr
if l_pointer /= default_pointer then
build_colors (l_pointer)
l_imp.unlock
end
end
end
end -- ICON_NEW_SUPPLIER_COLOR

View File

@ -0,0 +1,73 @@
note
description: "Pixel buffer that replaces original image file.%
%The original version of this class has been generated by Image Eiffel Code."
class
ICON_OBJECT_SYMBOL
inherit
EV_PIXEL_BUFFER
create
make
feature {NONE} -- Initialization
make
-- Initialization
do
make_with_size (16, 16)
fill_memory
end
feature {NONE} -- Image data
c_colors_0 (a_ptr: POINTER; a_offset: INTEGER)
-- Fill `a_ptr' with colors data from `a_offset'.
external
"C inline"
alias
"{
{
#define B(q) \
#q
#ifdef EIF_WINDOWS
#define A(a,r,g,b) \
B(\x##b\x##g\x##r\x##a)
#else
#define A(a,r,g,b) \
B(\x##r\x##g\x##b\x##a)
#endif
char l_data[] =
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,80,00,00)A(00,01,01,01)A(00,01,01,01)A(FF,80,00,00)A(00,01,01,01)A(00,01,01,01)A(FF,80,00,00)A(00,01,01,01)A(00,01,01,01)A(FF,80,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,80,00,00)A(FF,C0,C0,C0)A(00,01,01,01)A(FF,80,00,00)A(FF,C0,C0,C0)A(00,01,01,01)A(FF,80,00,00)A(FF,C0,C0,C0)A(00,01,01,01)A(FF,80,00,00)A(FF,C0,C0,C0)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,C0,C0,C0)A(FF,80,00,00)A(FF,C0,C0,C0)A(FF,C0,C0,C0)A(FF,80,00,00)A(FF,C0,C0,C0)A(FF,C0,C0,C0)A(FF,80,00,00)A(FF,C0,C0,C0)A(FF,C0,C0,C0)A(FF,80,00,00)A(FF,C0,C0,C0)A(FF,C0,C0,C0)A(FF,C0,C0,C0)
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,80,00,00)A(FF,C0,C0,C0)A(00,01,01,01)A(FF,80,00,00)A(FF,C0,C0,C0)A(00,01,01,01)A(FF,80,00,00)A(FF,C0,C0,C0)A(00,01,01,01)A(FF,80,00,00)A(FF,C0,C0,C0)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,C0,C0,C0)A(FF,80,00,00)A(FF,C0,C0,C0)A(FF,C0,C0,C0)A(FF,80,00,00)A(FF,C0,C0,C0)A(FF,C0,C0,C0)A(FF,80,00,00)A(FF,C0,C0,C0)A(FF,C0,C0,C0)A(FF,80,00,00)A(FF,C0,C0,C0)A(FF,C0,C0,C0)A(FF,C0,C0,C0)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,80,00,00)A(FF,C0,C0,C0)A(00,01,01,01)A(FF,80,00,00)A(FF,C0,C0,C0)A(00,01,01,01)A(FF,80,00,00)A(FF,C0,C0,C0)A(00,01,01,01)A(FF,80,00,00)A(FF,C0,C0,C0)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(00,01,01,01)
A(00,01,01,01)A(00,01,01,01)A(FF,C0,C0,C0)A(FF,80,00,00)A(FF,C0,C0,C0)A(FF,C0,C0,C0)A(FF,80,00,00)A(FF,C0,C0,C0)A(FF,C0,C0,C0)A(FF,80,00,00)A(FF,C0,C0,C0)A(FF,C0,C0,C0)A(FF,80,00,00)A(FF,C0,C0,C0)A(FF,C0,C0,C0)A(FF,C0,C0,C0)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,80,00,00)A(FF,C0,C0,C0)A(00,01,01,01)A(FF,80,00,00)A(FF,C0,C0,C0)A(00,01,01,01)A(FF,80,00,00)A(FF,C0,C0,C0)A(00,01,01,01)A(FF,80,00,00)A(FF,C0,C0,C0)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(FF,80,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,C0,C0,C0)A(FF,80,00,00)A(FF,C0,C0,C0)A(FF,C0,C0,C0)A(FF,80,00,00)A(FF,C0,C0,C0)A(FF,C0,C0,C0)A(FF,80,00,00)A(FF,C0,C0,C0)A(FF,C0,C0,C0)A(FF,80,00,00)A(FF,C0,C0,C0)A(FF,C0,C0,C0)A(FF,C0,C0,C0)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,80,00,00)A(FF,C0,C0,C0)A(00,01,01,01)A(FF,80,00,00)A(FF,C0,C0,C0)A(00,01,01,01)A(FF,80,00,00)A(FF,C0,C0,C0)A(00,01,01,01)A(FF,80,00,00)A(FF,C0,C0,C0)A(00,01,01,01)A(00,01,01,01)
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,C0,C0,C0)A(00,01,01,01)A(00,01,01,01)A(FF,C0,C0,C0)A(00,01,01,01)A(00,01,01,01)A(FF,C0,C0,C0)A(00,01,01,01)A(00,01,01,01)A(FF,C0,C0,C0)A(00,01,01,01)A(00,01,01,01);
memcpy ((EIF_NATURAL_32 *)$a_ptr + $a_offset, &l_data, sizeof l_data - 1);
}
}"
end
build_colors (a_ptr: POINTER)
-- Build `colors'.
do
c_colors_0 (a_ptr, 0)
end
feature {NONE} -- Image data filling.
fill_memory
-- Fill image data into memory.
local
l_pointer: POINTER
do
check attached {EV_PIXEL_BUFFER_IMP} implementation as l_imp then
l_pointer := l_imp.data_ptr
if l_pointer /= default_pointer then
build_colors (l_pointer)
l_imp.unlock
end
end
end
end -- ICON_OBJECT_SYMBOL

View File

@ -0,0 +1,73 @@
note
description: "Pixel buffer that replaces original image file.%
%The original version of this class has been generated by Image Eiffel Code."
class
ICON_OPEN_FILE_COLOR
inherit
EV_PIXEL_BUFFER
create
make
feature {NONE} -- Initialization
make
-- Initialization
do
make_with_size (16, 16)
fill_memory
end
feature {NONE} -- Image data
c_colors_0 (a_ptr: POINTER; a_offset: INTEGER)
-- Fill `a_ptr' with colors data from `a_offset'.
external
"C inline"
alias
"{
{
#define B(q) \
#q
#ifdef EIF_WINDOWS
#define A(a,r,g,b) \
B(\x##b\x##g\x##r\x##a)
#else
#define A(a,r,g,b) \
B(\x##r\x##g\x##b\x##a)
#endif
char l_data[] =
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(00,01,01,01)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,00,00,00)A(00,01,01,01)
A(00,01,01,01)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(00,01,01,01)A(FF,00,00,00)A(FF,FF,FF,FF)A(FF,FF,FF,00)A(FF,FF,FF,FF)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,FF,FF,00)A(FF,FF,FF,FF)A(FF,FF,FF,00)A(FF,FF,FF,FF)A(FF,FF,FF,00)A(FF,FF,FF,FF)A(FF,FF,FF,00)A(FF,FF,FF,FF)A(FF,FF,FF,00)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,FF,FF,FF)A(FF,FF,FF,00)A(FF,FF,FF,FF)A(FF,FF,FF,00)A(FF,FF,FF,FF)A(FF,FF,FF,00)A(FF,FF,FF,FF)A(FF,FF,FF,00)A(FF,FF,FF,FF)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,FF,FF,00)A(FF,FF,FF,FF)A(FF,FF,FF,00)A(FF,FF,FF,FF)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(00,01,01,01)
A(FF,00,00,00)A(FF,FF,FF,FF)A(FF,FF,FF,00)A(FF,FF,FF,FF)A(FF,00,00,00)A(FF,80,80,00)A(FF,80,80,00)A(FF,80,80,00)A(FF,80,80,00)A(FF,80,80,00)A(FF,80,80,00)A(FF,80,80,00)A(FF,80,80,00)A(FF,80,80,00)A(FF,00,00,00)A(00,01,01,01)A(FF,00,00,00)A(FF,FF,FF,00)A(FF,FF,FF,FF)A(FF,00,00,00)A(FF,80,80,00)A(FF,80,80,00)A(FF,80,80,00)A(FF,80,80,00)A(FF,80,80,00)A(FF,80,80,00)A(FF,80,80,00)A(FF,80,80,00)A(FF,80,80,00)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,FF,FF,FF)A(FF,00,00,00)A(FF,80,80,00)A(FF,80,80,00)A(FF,80,80,00)A(FF,80,80,00)A(FF,80,80,00)A(FF,80,80,00)A(FF,80,80,00)A(FF,80,80,00)A(FF,80,80,00)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,00,00,00)A(FF,80,80,00)A(FF,80,80,00)A(FF,80,80,00)A(FF,80,80,00)A(FF,80,80,00)A(FF,80,80,00)A(FF,80,80,00)A(FF,80,80,00)A(FF,80,80,00)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01);
memcpy ((EIF_NATURAL_32 *)$a_ptr + $a_offset, &l_data, sizeof l_data - 1);
}
}"
end
build_colors (a_ptr: POINTER)
-- Build `colors'.
do
c_colors_0 (a_ptr, 0)
end
feature {NONE} -- Image data filling.
fill_memory
-- Fill image data into memory.
local
l_pointer: POINTER
do
check attached {EV_PIXEL_BUFFER_IMP} implementation as l_imp then
l_pointer := l_imp.data_ptr
if l_pointer /= default_pointer then
build_colors (l_pointer)
l_imp.unlock
end
end
end
end -- ICON_OPEN_FILE_COLOR

View File

@ -0,0 +1,73 @@
note
description: "Pixel buffer that replaces original image file.%
%The original version of this class has been generated by Image Eiffel Code."
class
ICON_REDO_COLOR
inherit
EV_PIXEL_BUFFER
create
make
feature {NONE} -- Initialization
make
-- Initialization
do
make_with_size (16, 16)
fill_memory
end
feature {NONE} -- Image data
c_colors_0 (a_ptr: POINTER; a_offset: INTEGER)
-- Fill `a_ptr' with colors data from `a_offset'.
external
"C inline"
alias
"{
{
#define B(q) \
#q
#ifdef EIF_WINDOWS
#define A(a,r,g,b) \
B(\x##b\x##g\x##r\x##a)
#else
#define A(a,r,g,b) \
B(\x##r\x##g\x##b\x##a)
#endif
char l_data[] =
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(00,01,01,01)A(FF,00,00,80)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)
A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01);
memcpy ((EIF_NATURAL_32 *)$a_ptr + $a_offset, &l_data, sizeof l_data - 1);
}
}"
end
build_colors (a_ptr: POINTER)
-- Build `colors'.
do
c_colors_0 (a_ptr, 0)
end
feature {NONE} -- Image data filling.
fill_memory
-- Fill image data into memory.
local
l_pointer: POINTER
do
check attached {EV_PIXEL_BUFFER_IMP} implementation as l_imp then
l_pointer := l_imp.data_ptr
if l_pointer /= default_pointer then
build_colors (l_pointer)
l_imp.unlock
end
end
end
end -- ICON_REDO_COLOR

View File

@ -0,0 +1,73 @@
note
description: "Pixel buffer that replaces original image file.%
%The original version of this class has been generated by Image Eiffel Code."
class
ICON_RESET_DIAGRAM_COLOR
inherit
EV_PIXEL_BUFFER
create
make
feature {NONE} -- Initialization
make
-- Initialization
do
make_with_size (16, 16)
fill_memory
end
feature {NONE} -- Image data
c_colors_0 (a_ptr: POINTER; a_offset: INTEGER)
-- Fill `a_ptr' with colors data from `a_offset'.
external
"C inline"
alias
"{
{
#define B(q) \
#q
#ifdef EIF_WINDOWS
#define A(a,r,g,b) \
B(\x##b\x##g\x##r\x##a)
#else
#define A(a,r,g,b) \
B(\x##r\x##g\x##b\x##a)
#endif
char l_data[] =
A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,9B,40,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,9B,40,00)A(FF,3C,0C,00)A(FF,3C,0C,00)A(FF,3C,0C,00)A(FF,3C,0C,00)A(FF,9B,40,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,9B,40,00)A(FF,3C,0C,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,9B,40,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)
A(00,00,00,00)A(00,00,00,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,9B,40,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,FF,FF,00)A(FF,FF,FF,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,CD,A0,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,3C,0C,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,FF,FF,00)A(FF,CD,A0,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,CD,A0,00)A(FF,FF,FF,00)A(FF,CD,A0,00)A(FF,9B,40,00)A(FF,3C,0C,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,FF,FF,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,CD,A0,00)A(FF,FF,FF,00)A(FF,FF,FF,00)A(FF,FF,FF,00)A(FF,CD,A0,00)A(FF,3C,0C,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,CD,A0,00)A(FF,FF,FF,00)A(FF,FF,FF,00)A(FF,FF,FF,00)A(FF,CD,A0,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,FF,FF,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,3C,0C,00)A(00,00,00,00)A(00,00,00,00)
A(00,00,00,00)A(00,00,00,00)A(FF,9B,40,00)A(FF,CD,A0,00)A(FF,FF,FF,00)A(FF,CD,A0,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,CD,A0,00)A(FF,FF,FF,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,3C,0C,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,CD,A0,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,FF,FF,00)A(FF,FF,FF,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,3C,0C,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,9B,40,00)A(FF,3C,0C,00)A(FF,3C,0C,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,3C,0C,00)A(FF,3C,0C,00)A(FF,3C,0C,00)A(FF,3C,0C,00)A(FF,3C,0C,00)A(FF,3C,0C,00)A(FF,3C,0C,00)A(FF,3C,0C,00)A(FF,3C,0C,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)
A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00);
memcpy ((EIF_NATURAL_32 *)$a_ptr + $a_offset, &l_data, sizeof l_data - 1);
}
}"
end
build_colors (a_ptr: POINTER)
-- Build `colors'.
do
c_colors_0 (a_ptr, 0)
end
feature {NONE} -- Image data filling.
fill_memory
-- Fill image data into memory.
local
l_pointer: POINTER
do
if attached {EV_PIXEL_BUFFER_IMP} implementation as l_imp then
l_pointer := l_imp.data_ptr
if not l_pointer.is_default_pointer then
build_colors (l_pointer)
l_imp.unlock
end
end
end
end -- ICON_RESET_DIAGRAM_COLOR

View File

@ -0,0 +1,73 @@
note
description: "Pixel buffer that replaces original image file.%
%The original version of this class has been generated by Image Eiffel Code."
class
ICON_RESTORE_ALL_COLOR
inherit
EV_PIXEL_BUFFER
create
make
feature {NONE} -- Initialization
make
-- Initialization
do
make_with_size (16, 16)
fill_memory
end
feature {NONE} -- Image data
c_colors_0 (a_ptr: POINTER; a_offset: INTEGER)
-- Fill `a_ptr' with colors data from `a_offset'.
external
"C inline"
alias
"{
{
#define B(q) \
#q
#ifdef EIF_WINDOWS
#define A(a,r,g,b) \
B(\x##b\x##g\x##r\x##a)
#else
#define A(a,r,g,b) \
B(\x##r\x##g\x##b\x##a)
#endif
char l_data[] =
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,00,00,00)A(FF,00,00,80)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,80)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,00,00,00)A(FF,00,00,00)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,6E,6E,6E)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,00,00,00)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,00,00,00)
A(FF,00,00,00)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,6E,6E,6E)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,F2,F2,F2)A(FF,00,00,00)A(FF,6E,6E,6E)A(FF,6E,6E,6E)A(FF,6E,6E,6E)A(FF,00,00,00)A(FF,00,00,00)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,6E,6E,6E)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,00,00,00)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,DA,DA,DA)A(FF,00,00,00)A(FF,00,00,00)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,6E,6E,6E)A(FF,6E,6E,6E)A(FF,6E,6E,6E)A(FF,6E,6E,6E)A(FF,6E,6E,6E)A(FF,6E,6E,6E)A(FF,6E,6E,6E)A(FF,00,00,00)A(FF,DA,DA,DA)A(FF,DA,DA,DA)A(FF,E6,E6,E6)A(FF,00,00,00)A(FF,00,00,00)A(FF,F2,F2,F2)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,6E,6E,6E)A(FF,F2,F2,F2)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,DA,DA,DA)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,F2,F2,F2)A(FF,E6,E6,E6)A(FF,F2,F2,F2)A(FF,6E,6E,6E)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,DA,DA,DA)A(FF,DA,DA,DA)A(FF,DA,DA,DA)A(FF,E6,E6,E6)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)
A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,25,73)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,25,73)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,25,73)A(FF,00,25,73)A(FF,00,25,73)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,25,73)A(FF,00,25,73)A(FF,00,25,73)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,25,73)A(FF,00,25,73)A(FF,00,25,73)A(FF,00,25,73)A(FF,00,25,73)A(00,01,01,01)A(00,01,01,01)A(FF,00,25,73)A(FF,00,25,73)A(FF,00,25,73)A(FF,00,25,73)A(FF,00,25,73)A(00,01,01,01)A(00,01,01,01)
A(FF,62,62,62)A(FF,62,62,62)A(FF,62,62,62)A(FF,62,62,62)A(FF,62,62,62)A(FF,62,62,62)A(FF,62,62,62)A(FF,62,62,62)A(FF,62,62,62)A(FF,62,62,62)A(FF,62,62,62)A(FF,62,62,62)A(FF,62,62,62)A(FF,62,62,62)A(FF,62,62,62)A(FF,62,62,62);
memcpy ((EIF_NATURAL_32 *)$a_ptr + $a_offset, &l_data, sizeof l_data - 1);
}
}"
end
build_colors (a_ptr: POINTER)
-- Build `colors'.
do
c_colors_0 (a_ptr, 0)
end
feature {NONE} -- Image data filling.
fill_memory
-- Fill image data into memory.
local
l_pointer: POINTER
do
check attached {EV_PIXEL_BUFFER_IMP} implementation as l_imp then
l_pointer := l_imp.data_ptr
if l_pointer /= default_pointer then
build_colors (l_pointer)
l_imp.unlock
end
end
end
end -- ICON_RESTORE_ALL_COLOR

View File

@ -0,0 +1,70 @@
note
description: "Pixel buffer that replaces original image file.%
%The original version of this class has been generated by Image Eiffel Code."
class
ICON_RESTORE_COLOR
inherit
EV_PIXEL_BUFFER
create
make
feature {NONE} -- Initialization
make
-- Initialization
do
make_with_size (8, 8)
fill_memory
end
feature {NONE} -- Image data
c_colors_0 (a_ptr: POINTER; a_offset: INTEGER)
-- Fill `a_ptr' with colors data from `a_offset'.
external
"C inline"
alias
"{
{
#define B(q) \
#q
#ifdef EIF_WINDOWS
#define A(a,r,g,b) \
B(\x##b\x##g\x##r\x##a)
#else
#define A(a,r,g,b) \
B(\x##r\x##g\x##b\x##a)
#endif
char l_data[] =
A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(00,01,01,01)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,80)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01);
memcpy ((EIF_NATURAL_32 *)$a_ptr + $a_offset, &l_data, sizeof l_data - 1);
}
}"
end
build_colors (a_ptr: POINTER)
-- Build `colors'.
do
c_colors_0 (a_ptr, 0)
end
feature {NONE} -- Image data filling.
fill_memory
-- Fill image data into memory.
local
l_pointer: POINTER
do
check attached {EV_PIXEL_BUFFER_IMP} implementation as l_imp then
l_pointer := l_imp.data_ptr
if l_pointer /= default_pointer then
build_colors (l_pointer)
l_imp.unlock
end
end
end
end -- ICON_RESTORE_COLOR

View File

@ -0,0 +1,73 @@
note
description: "Pixel buffer that replaces original image file.%
%The original version of this class has been generated by Image Eiffel Code."
class
ICON_SAVE_COLOR
inherit
EV_PIXEL_BUFFER
create
make
feature {NONE} -- Initialization
make
-- Initialization
do
make_with_size (16, 16)
fill_memory
end
feature {NONE} -- Image data
c_colors_0 (a_ptr: POINTER; a_offset: INTEGER)
-- Fill `a_ptr' with colors data from `a_offset'.
external
"C inline"
alias
"{
{
#define B(q) \
#q
#ifdef EIF_WINDOWS
#define A(a,r,g,b) \
B(\x##b\x##g\x##r\x##a)
#else
#define A(a,r,g,b) \
B(\x##r\x##g\x##b\x##a)
#endif
char l_data[] =
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,AA,A8,64)A(FF,00,00,00)A(FF,00,80,00)A(FF,00,80,00)A(FF,00,80,00)A(FF,00,80,00)A(FF,00,80,00)A(FF,00,80,00)A(FF,00,80,00)A(FF,00,80,00)A(FF,00,00,00)A(00,01,01,01)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,AA,A8,64)A(FF,00,00,00)A(FF,F5,F5,F5)A(FF,F5,F5,F5)A(FF,F5,F5,F5)A(FF,F5,F5,F5)A(FF,F5,F5,F5)A(FF,F5,F5,F5)A(FF,F5,F5,F5)A(FF,F5,F5,F5)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,AA,A8,64)A(FF,00,00,00)A(FF,F5,F5,F5)A(FF,F5,F5,F5)A(FF,F5,F5,F5)A(FF,F5,F5,F5)A(FF,F5,F5,F5)A(FF,F5,F5,F5)A(FF,F5,F5,F5)A(FF,F5,F5,F5)A(FF,00,00,00)A(FF,AA,A8,64)A(FF,00,00,00)A(00,01,01,01)
A(00,01,01,01)A(FF,00,00,00)A(FF,AA,A8,64)A(FF,00,00,00)A(FF,F5,F5,F5)A(FF,F5,F5,F5)A(FF,F5,F5,F5)A(FF,F5,F5,F5)A(FF,F5,F5,F5)A(FF,F5,F5,F5)A(FF,F5,F5,F5)A(FF,E4,E4,E4)A(FF,00,00,00)A(FF,AA,A8,64)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,AA,A8,64)A(FF,00,00,00)A(FF,F5,F5,F5)A(FF,F5,F5,F5)A(FF,F5,F5,F5)A(FF,F5,F5,F5)A(FF,F5,F5,F5)A(FF,E4,E4,E4)A(FF,E4,E4,E4)A(FF,E4,E4,E4)A(FF,00,00,00)A(FF,AA,A8,64)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,AA,A8,64)A(FF,00,00,00)A(FF,F5,F5,F5)A(FF,F5,F5,F5)A(FF,E4,E4,E4)A(FF,E4,E4,E4)A(FF,E4,E4,E4)A(FF,E4,E4,E4)A(FF,E4,E4,E4)A(FF,E4,E4,E4)A(FF,00,00,00)A(FF,99,99,66)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,AA,A8,64)A(FF,AA,A8,64)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,99,99,66)A(FF,99,99,66)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,AA,A8,64)A(FF,AA,A8,64)A(FF,99,99,66)A(FF,99,99,66)A(FF,99,99,66)A(FF,99,99,66)A(FF,99,99,66)A(FF,99,99,66)A(FF,99,99,66)A(FF,99,99,66)A(FF,99,99,66)A(FF,99,99,66)A(FF,00,00,00)A(00,01,01,01)
A(00,01,01,01)A(FF,00,00,00)A(FF,AA,A8,64)A(FF,AA,A8,64)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,80,80,00)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,AA,A8,64)A(FF,99,99,66)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,EA,E7,E3)A(FF,EA,E7,E3)A(FF,00,00,00)A(FF,80,80,00)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,99,99,66)A(FF,99,99,66)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,EA,E7,E3)A(FF,EA,E7,E3)A(FF,00,00,00)A(FF,80,80,00)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,99,99,66)A(FF,80,80,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,EA,E7,E3)A(FF,EA,E7,E3)A(FF,00,00,00)A(FF,80,80,00)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(00,01,01,01)
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01);
memcpy ((EIF_NATURAL_32 *)$a_ptr + $a_offset, &l_data, sizeof l_data - 1);
}
}"
end
build_colors (a_ptr: POINTER)
-- Build `colors'.
do
c_colors_0 (a_ptr, 0)
end
feature {NONE} -- Image data filling.
fill_memory
-- Fill image data into memory.
local
l_pointer: POINTER
do
check attached {EV_PIXEL_BUFFER_IMP} implementation as l_imp then
l_pointer := l_imp.data_ptr
if l_pointer /= default_pointer then
build_colors (l_pointer)
l_imp.unlock
end
end
end
end -- ICON_SAVE_COLOR

View File

@ -0,0 +1,73 @@
note
description: "Pixel buffer that replaces original image file.%
%The original version of this class has been generated by Image Eiffel Code."
class
ICON_SHELL_COLOR
inherit
EV_PIXEL_BUFFER
create
make
feature {NONE} -- Initialization
make
-- Initialization
do
make_with_size (16, 16)
fill_memory
end
feature {NONE} -- Image data
c_colors_0 (a_ptr: POINTER; a_offset: INTEGER)
-- Fill `a_ptr' with colors data from `a_offset'.
external
"C inline"
alias
"{
{
#define B(q) \
#q
#ifdef EIF_WINDOWS
#define A(a,r,g,b) \
B(\x##b\x##g\x##r\x##a)
#else
#define A(a,r,g,b) \
B(\x##r\x##g\x##b\x##a)
#endif
char l_data[] =
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,00,00,00)
A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,E6,E6,E6)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,F2,F2,F2)A(FF,9E,9E,9E)A(FF,96,31,00)A(FF,9E,9E,9E)A(FF,56,56,56)A(FF,56,56,56)A(FF,56,56,56)A(FF,56,56,56)A(FF,56,56,56)A(FF,56,56,56)A(FF,E6,E6,E6)A(FF,F2,F2,F2)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,96,31,00)A(FF,73,25,00)A(FF,F2,F2,F2)A(FF,E6,E6,E6)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,F2,F2,F2)A(FF,00,00,00)A(FF,96,31,00)A(FF,96,31,00)A(FF,96,31,00)A(FF,96,31,00)A(FF,96,31,00)A(FF,96,31,00)A(FF,73,25,00)A(FF,73,25,00)A(FF,9E,9E,9E)A(FF,56,56,56)A(FF,56,56,56)A(FF,56,56,56)A(FF,F2,F2,F2)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,00,00,00)A(FF,96,31,00)A(FF,73,25,00)A(FF,73,25,00)A(FF,73,25,00)A(FF,73,25,00)A(FF,73,25,00)A(FF,73,25,00)A(FF,50,19,00)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,F2,F2,F2)A(FF,00,00,00)
A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,73,25,00)A(FF,50,19,00)A(FF,9E,9E,9E)A(FF,56,56,56)A(FF,56,56,56)A(FF,56,56,56)A(FF,56,56,56)A(FF,56,56,56)A(FF,E6,E6,E6)A(FF,DA,DA,DA)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,F2,F2,F2)A(FF,E6,E6,E6)A(FF,50,19,00)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,F2,F2,F2)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,56,56,56)A(FF,56,56,56)A(FF,56,56,56)A(FF,56,56,56)A(FF,E6,E6,E6)A(FF,DA,DA,DA)A(FF,E6,E6,E6)A(FF,DA,DA,DA)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,F2,F2,F2)A(FF,F2,F2,F2)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,DA,DA,DA)A(FF,DA,DA,DA)A(FF,E6,E6,E6)A(FF,DA,DA,DA)A(FF,E6,E6,E6)A(FF,E6,E6,E6)A(FF,00,00,00)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01);
memcpy ((EIF_NATURAL_32 *)$a_ptr + $a_offset, &l_data, sizeof l_data - 1);
}
}"
end
build_colors (a_ptr: POINTER)
-- Build `colors'.
do
c_colors_0 (a_ptr, 0)
end
feature {NONE} -- Image data filling.
fill_memory
-- Fill image data into memory.
local
l_pointer: POINTER
do
check attached {EV_PIXEL_BUFFER_IMP} implementation as l_imp then
l_pointer := l_imp.data_ptr
if l_pointer /= default_pointer then
build_colors (l_pointer)
l_imp.unlock
end
end
end
end -- ICON_SHELL_COLOR

View File

@ -0,0 +1,73 @@
note
description: "Pixel buffer that replaces original image file.%
%The original version of this class has been generated by Image Eiffel Code."
class
ICON_SUPPLIER_COLOR
inherit
EV_PIXEL_BUFFER
create
make
feature {NONE} -- Initialization
make
-- Initialization
do
make_with_size (16, 16)
fill_memory
end
feature {NONE} -- Image data
c_colors_0 (a_ptr: POINTER; a_offset: INTEGER)
-- Fill `a_ptr' with colors data from `a_offset'.
external
"C inline"
alias
"{
{
#define B(q) \
#q
#ifdef EIF_WINDOWS
#define A(a,r,g,b) \
B(\x##b\x##g\x##r\x##a)
#else
#define A(a,r,g,b) \
B(\x##r\x##g\x##b\x##a)
#endif
char l_data[] =
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,B9)A(FF,00,00,B9)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,25,57,FF)A(FF,25,57,FF)A(FF,00,00,B9)A(FF,00,00,B9)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,25,57,FF)A(FF,25,57,FF)A(FF,00,00,B9)A(FF,00,00,B9)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,25,57,FF)A(FF,25,57,FF)A(FF,00,00,B9)A(FF,00,00,B9)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,25,57,FF)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,50)A(FF,00,00,50)
A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,50)A(FF,00,00,50)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,B9)A(FF,00,00,B9)A(FF,00,00,50)A(FF,00,00,50)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,50)A(FF,00,00,50)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01);
memcpy ((EIF_NATURAL_32 *)$a_ptr + $a_offset, &l_data, sizeof l_data - 1);
}
}"
end
build_colors (a_ptr: POINTER)
-- Build `colors'.
do
c_colors_0 (a_ptr, 0)
end
feature {NONE} -- Image data filling.
fill_memory
-- Fill image data into memory.
local
l_pointer: POINTER
do
check attached {EV_PIXEL_BUFFER_IMP} implementation as l_imp then
l_pointer := l_imp.data_ptr
if l_pointer /= default_pointer then
build_colors (l_pointer)
l_imp.unlock
end
end
end
end -- ICON_SUPPLIER_COLOR

View File

@ -0,0 +1,74 @@
note
description: "Pixel buffer that replaces original image file.%
%The original version of this class has been generated by Image Eiffel Code."
class
ICON_TOOL_COLOR
inherit
EV_PIXEL_BUFFER
create
make
feature {NONE} -- Initialization
make
-- Initialization
do
make_with_size (20, 20)
fill_memory
end
feature {NONE} -- Image data
c_colors_0 (a_ptr: POINTER; a_offset: INTEGER)
-- Fill `a_ptr' with colors data from `a_offset'.
external
"C inline"
alias
"{
{
#define B(q) \
#q
#ifdef EIF_WINDOWS
#define A(a,r,g,b) \
B(\x##b\x##g\x##r\x##a)
#else
#define A(a,r,g,b) \
B(\x##r\x##g\x##b\x##a)
#endif
char l_data[] =
A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,7A,7A,7A)A(FF,7A,7A,7A)A(00,00,00,00)A(00,00,00,00)A(FF,7A,7A,7A)A(FF,7A,7A,7A)A(FF,7A,7A,7A)A(FF,7A,7A,7A)A(FF,7A,7A,7A)A(FF,7A,7A,7A)A(FF,7A,7A,7A)A(FF,7A,7A,7A)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,7A,7A,7A)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,92,92,92)A(FF,92,92,92)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,D4,FF,FF)A(FF,D4,F0,FF)A(FF,D4,F0,FF)A(FF,D4,F0,FF)A(FF,6E,6E,6E)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,7A,7A,7A)A(FF,D4,FF,FF)A(FF,CE,CE,CE)A(FF,FF,FF,FF)A(FF,FF,FF,FF)A(FF,D4,F0,FF)A(FF,CE,CE,CE)A(FF,CE,CE,CE)A(FF,CE,CE,CE)A(FF,CE,CE,CE)A(FF,CE,CE,CE)A(FF,CE,CE,CE)A(FF,CE,CE,CE)A(FF,F2,F2,F2)A(FF,31,00,96)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,7A,7A,7A)A(FF,D4,FF,FF)A(FF,CE,CE,CE)A(FF,92,92,92)A(FF,92,92,92)A(FF,CE,CE,CE)A(FF,CE,CE,CE)A(FF,A6,CA,F0)A(FF,A6,CA,F0)A(FF,86,86,86)A(FF,6B,8F,FF)A(FF,86,86,86)A(FF,6B,8F,FF)A(FF,7A,7A,7A)A(FF,DA,DA,DA)A(FF,56,56,56)
A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,7A,7A,7A)A(FF,D4,FF,FF)A(FF,3E,3E,3E)A(FF,1A,1A,1A)A(FF,1A,1A,1A)A(FF,7A,7A,7A)A(FF,86,86,86)A(FF,A6,CA,F0)A(FF,6B,8F,FF)A(FF,86,86,86)A(FF,31,00,96)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,86,86,86)A(FF,31,00,96)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,7A,7A,7A)A(FF,7A,7A,7A)A(FF,3E,3E,3E)A(00,00,00,00)A(00,00,00,00)A(FF,31,00,96)A(FF,1A,1A,1A)A(FF,A6,CA,F0)A(FF,6B,8F,FF)A(FF,00,00,00)A(FF,31,00,96)A(00,00,00,00)A(00,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,56,56,56)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,1A,1A,1A)A(FF,A6,CA,F0)A(FF,86,86,86)A(FF,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,1A,1A,1A)A(FF,A6,CA,F0)A(FF,86,86,86)A(FF,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)
A(00,00,00,00)A(00,00,00,00)A(FF,73,73,00)A(FF,73,73,00)A(FF,73,73,00)A(FF,73,73,00)A(FF,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,FF,6B,6B)A(FF,FF,6B,6B)A(FF,96,31,00)A(FF,FF,6B,6B)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,73,73,00)A(FF,FF,FB,F0)A(FF,FF,FF,8E)A(FF,FF,FF,8E)A(FF,FF,FF,8E)A(FF,DC,92,00)A(FF,00,00,00)A(00,00,00,00)A(FF,FF,55,00)A(FF,FF,FF,D4)A(FF,FF,C6,6B)A(FF,FF,C6,6B)A(FF,B9,3D,00)A(FF,50,32,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,73,73,00)A(FF,73,73,00)A(FF,73,73,00)A(FF,73,73,00)A(FF,73,73,00)A(FF,73,73,00)A(FF,73,73,00)A(FF,73,73,00)A(FF,73,73,00)A(FF,B9,3D,00)A(FF,FF,FF,8E)A(FF,FF,55,00)A(FF,FF,55,00)A(FF,96,31,00)A(FF,50,32,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,73,73,00)A(FF,FF,FF,8E)A(FF,FF,FF,8E)A(FF,FF,FF,8E)A(FF,FF,FF,8E)A(FF,FF,FF,8E)A(FF,FF,FF,8E)A(FF,FF,FF,8E)A(FF,FF,FF,8E)A(FF,B9,3D,00)A(FF,FF,FF,8E)A(FF,FF,55,00)A(FF,FF,55,00)A(FF,96,31,00)A(FF,50,32,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)
A(FF,73,73,00)A(FF,FF,FF,8E)A(FF,FF,AA,00)A(FF,FF,FF,FF)A(FF,FF,AA,00)A(FF,FF,FF,8E)A(FF,FF,AA,00)A(FF,FF,FF,8E)A(FF,FF,AA,00)A(FF,B9,3D,00)A(FF,FF,C6,6B)A(FF,FF,55,00)A(FF,FF,55,00)A(FF,96,31,00)A(FF,50,32,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,73,73,00)A(FF,FF,FF,8E)A(FF,FF,FF,FF)A(FF,FF,AA,00)A(FF,FF,FF,8E)A(FF,FF,AA,00)A(FF,FF,FF,8E)A(FF,FF,AA,00)A(FF,DC,92,00)A(FF,B9,3D,00)A(FF,FF,C6,6B)A(FF,FF,55,00)A(FF,FF,55,00)A(FF,96,31,00)A(FF,50,32,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,73,73,00)A(FF,FF,FF,8E)A(FF,FF,AA,00)A(FF,FF,FF,8E)A(FF,FF,AA,00)A(FF,FF,FF,8E)A(FF,FF,AA,00)A(FF,DC,92,00)A(FF,FF,AA,00)A(FF,B9,3D,00)A(FF,FF,C6,6B)A(FF,FF,55,00)A(FF,FF,55,00)A(FF,96,31,00)A(FF,50,32,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,73,73,00)A(FF,FF,FF,8E)A(FF,FF,FF,8E)A(FF,FF,AA,00)A(FF,FF,FF,8E)A(FF,FF,AA,00)A(FF,DC,92,00)A(FF,FF,AA,00)A(FF,DC,92,00)A(FF,B9,3D,00)A(FF,FF,C6,6B)A(FF,FF,55,00)A(FF,FF,55,00)A(FF,96,31,00)A(FF,50,32,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)
A(FF,73,73,00)A(FF,FF,FF,8E)A(FF,FF,AA,00)A(FF,FF,FF,8E)A(FF,FF,AA,00)A(FF,DC,92,00)A(FF,FF,AA,00)A(FF,DC,92,00)A(FF,DC,92,00)A(FF,B9,3D,00)A(FF,FF,C6,6B)A(FF,FF,55,00)A(FF,FF,55,00)A(FF,96,31,00)A(FF,50,32,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,73,73,00)A(FF,FF,FF,8E)A(FF,FF,FF,8E)A(FF,FF,AA,00)A(FF,DC,92,00)A(FF,FF,AA,00)A(FF,DC,92,00)A(FF,DC,92,00)A(FF,DC,92,00)A(FF,B9,3D,00)A(FF,FF,C6,6B)A(FF,FF,55,00)A(FF,FF,55,00)A(FF,96,31,00)A(FF,50,32,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,00,00,00)A(FF,B9,3D,00)A(FF,FF,55,00)A(FF,96,31,00)A(FF,96,31,00)A(FF,96,31,00)A(FF,50,32,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(FF,50,32,00)A(FF,50,32,00)A(FF,50,32,00)A(FF,50,32,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00)A(00,00,00,00);
memcpy ((EIF_NATURAL_32 *)$a_ptr + $a_offset, &l_data, sizeof l_data - 1);
}
}"
end
build_colors (a_ptr: POINTER)
-- Build `colors'.
do
c_colors_0 (a_ptr, 0)
end
feature {NONE} -- Image data filling.
fill_memory
-- Fill image data into memory.
local
l_pointer: POINTER
do
if attached {EV_PIXEL_BUFFER_IMP} implementation as l_imp then
l_pointer := l_imp.data_ptr
if not l_pointer.is_default_pointer then
build_colors (l_pointer)
l_imp.unlock
end
end
end
end -- ICON_TOOL_COLOR

View File

@ -0,0 +1,73 @@
note
description: "Pixel buffer that replaces original image file.%
%The original version of this class has been generated by Image Eiffel Code."
class
ICON_UNDO_COLOR
inherit
EV_PIXEL_BUFFER
create
make
feature {NONE} -- Initialization
make
-- Initialization
do
make_with_size (16, 16)
fill_memory
end
feature {NONE} -- Image data
c_colors_0 (a_ptr: POINTER; a_offset: INTEGER)
-- Fill `a_ptr' with colors data from `a_offset'.
external
"C inline"
alias
"{
{
#define B(q) \
#q
#ifdef EIF_WINDOWS
#define A(a,r,g,b) \
B(\x##b\x##g\x##r\x##a)
#else
#define A(a,r,g,b) \
B(\x##r\x##g\x##b\x##a)
#endif
char l_data[] =
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(FF,00,00,80)A(00,01,01,01)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)
A(00,01,01,01)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,80)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01);
memcpy ((EIF_NATURAL_32 *)$a_ptr + $a_offset, &l_data, sizeof l_data - 1);
}
}"
end
build_colors (a_ptr: POINTER)
-- Build `colors'.
do
c_colors_0 (a_ptr, 0)
end
feature {NONE} -- Image data filling.
fill_memory
-- Fill image data into memory.
local
l_pointer: POINTER
do
check attached {EV_PIXEL_BUFFER_IMP} implementation as l_imp then
l_pointer := l_imp.data_ptr
if l_pointer /= default_pointer then
build_colors (l_pointer)
l_imp.unlock
end
end
end
end -- ICON_UNDO_COLOR

View File

@ -0,0 +1,73 @@
note
description: "Pixel buffer that replaces original image file.%
%The original version of this class has been generated by Image Eiffel Code."
class
ICON_ZOOM_IN_COLOR
inherit
EV_PIXEL_BUFFER
create
make
feature {NONE} -- Initialization
make
-- Initialization
do
make_with_size (16, 16)
fill_memory
end
feature {NONE} -- Image data
c_colors_0 (a_ptr: POINTER; a_offset: INTEGER)
-- Fill `a_ptr' with colors data from `a_offset'.
external
"C inline"
alias
"{
{
#define B(q) \
#q
#ifdef EIF_WINDOWS
#define A(a,r,g,b) \
B(\x##b\x##g\x##r\x##a)
#else
#define A(a,r,g,b) \
B(\x##r\x##g\x##b\x##a)
#endif
char l_data[] =
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,73)A(FF,00,00,73)A(FF,00,00,73)A(FF,00,00,73)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,73)A(FF,00,00,73)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,00,73)A(FF,00,00,73)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,73)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,00,73)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,73)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,00,50)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,73)A(FF,00,DC,DC)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,DC,DC)A(FF,00,00,50)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)
A(FF,00,00,73)A(FF,00,DC,DC)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,DC,DC)A(FF,00,00,50)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,73)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,00,50)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,73)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,00,50)A(FF,25,00,73)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,73)A(FF,00,00,73)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,00,50)A(FF,00,92,DC)A(FF,48,B8,FF)A(FF,25,00,73)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,25,00,73)A(FF,00,92,DC)A(FF,00,92,DC)A(FF,48,B8,FF)A(FF,25,00,73)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,25,00,73)A(FF,00,92,DC)A(FF,00,92,DC)A(FF,48,B8,FF)A(FF,25,00,73)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,25,00,73)A(FF,00,92,DC)A(FF,00,92,DC)A(FF,48,B8,FF)A(FF,25,00,73)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,25,00,73)A(FF,00,92,DC)A(FF,00,92,DC)A(FF,48,B8,FF)A(FF,25,00,73)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,25,00,73)A(FF,00,92,DC)A(FF,00,92,DC)A(FF,48,B8,FF)A(FF,00,19,50)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,25,00,73)A(FF,00,92,DC)A(FF,00,92,DC)A(FF,00,19,50)
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,19,50)A(FF,00,19,50)A(00,01,01,01);
memcpy ((EIF_NATURAL_32 *)$a_ptr + $a_offset, &l_data, sizeof l_data - 1);
}
}"
end
build_colors (a_ptr: POINTER)
-- Build `colors'.
do
c_colors_0 (a_ptr, 0)
end
feature {NONE} -- Image data filling.
fill_memory
-- Fill image data into memory.
local
l_pointer: POINTER
do
check attached {EV_PIXEL_BUFFER_IMP} implementation as l_imp then
l_pointer := l_imp.data_ptr
if l_pointer /= default_pointer then
build_colors (l_pointer)
l_imp.unlock
end
end
end
end -- ICON_ZOOM_IN_COLOR

View File

@ -0,0 +1,73 @@
note
description: "Pixel buffer that replaces original image file.%
%The original version of this class has been generated by Image Eiffel Code."
class
ICON_ZOOM_OUT_COLOR
inherit
EV_PIXEL_BUFFER
create
make
feature {NONE} -- Initialization
make
-- Initialization
do
make_with_size (16, 16)
fill_memory
end
feature {NONE} -- Image data
c_colors_0 (a_ptr: POINTER; a_offset: INTEGER)
-- Fill `a_ptr' with colors data from `a_offset'.
external
"C inline"
alias
"{
{
#define B(q) \
#q
#ifdef EIF_WINDOWS
#define A(a,r,g,b) \
B(\x##b\x##g\x##r\x##a)
#else
#define A(a,r,g,b) \
B(\x##r\x##g\x##b\x##a)
#endif
char l_data[] =
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,73)A(FF,00,00,73)A(FF,00,00,73)A(FF,00,00,73)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,73)A(FF,00,00,73)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,00,73)A(FF,00,00,73)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,73)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,00,73)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,73)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,00,50)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,73)A(FF,00,DC,DC)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,DC,DC)A(FF,00,00,50)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)
A(FF,00,00,73)A(FF,00,DC,DC)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,DC,DC)A(FF,00,00,50)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,73)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,00,50)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,73)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,00,50)A(FF,25,00,73)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,73)A(FF,00,00,73)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,DC,DC)A(FF,00,00,50)A(FF,00,92,DC)A(FF,48,B8,FF)A(FF,25,00,73)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,00,00,50)A(FF,25,00,73)A(FF,00,92,DC)A(FF,00,92,DC)A(FF,48,B8,FF)A(FF,25,00,73)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,25,00,73)A(FF,00,92,DC)A(FF,00,92,DC)A(FF,48,B8,FF)A(FF,25,00,73)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,25,00,73)A(FF,00,92,DC)A(FF,00,92,DC)A(FF,48,B8,FF)A(FF,25,00,73)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,25,00,73)A(FF,00,92,DC)A(FF,00,92,DC)A(FF,48,B8,FF)A(FF,25,00,73)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,25,00,73)A(FF,00,92,DC)A(FF,00,92,DC)A(FF,48,B8,FF)A(FF,00,19,50)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,25,00,73)A(FF,00,92,DC)A(FF,00,92,DC)A(FF,00,19,50)
A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(00,01,01,01)A(FF,00,19,50)A(FF,00,19,50)A(00,01,01,01);
memcpy ((EIF_NATURAL_32 *)$a_ptr + $a_offset, &l_data, sizeof l_data - 1);
}
}"
end
build_colors (a_ptr: POINTER)
-- Build `colors'.
do
c_colors_0 (a_ptr, 0)
end
feature {NONE} -- Image data filling.
fill_memory
-- Fill image data into memory.
local
l_pointer: POINTER
do
check attached {EV_PIXEL_BUFFER_IMP} implementation as l_imp then
l_pointer := l_imp.data_ptr
if l_pointer /= default_pointer then
build_colors (l_pointer)
l_imp.unlock
end
end
end
end -- ICON_ZOOM_OUT_COLOR

View File

@ -0,0 +1,53 @@
note
description: "[
Images
]"
author: "Jimmy J. Johnson"
date: "$Date: 2014-06-15 09:17:19 -0400 (Sun, 15 Jun 2014) $"
revision: "$Revision: 18 $"
class
PIXEL_BUFFERS
feature -- Access
icon_back_color_buffer: ICON_BACK_COLOR once create Result.make end
icon_forth_color_buffer: ICON_FORTH_COLOR
once
create Result.make
end
icon_new_supplier_color_buffer: ICON_NEW_SUPPLIER_COLOR once create Result.make end
icon_delete_color_buffer: ICON_DELETE_COLOR once create Result.make end
icon_object_symbol_buffer: ICON_OBJECT_SYMBOL once create Result.make end
icon_new_class_color_buffer: ICON_NEW_CLASS_COLOR once create Result.make end
icon_open_file_color_buffer: ICON_OPEN_FILE_COLOR once create Result.make end
icon_save_color_buffer: ICON_SAVE_COLOR once create Result.make end
icon_undo_color_buffer: ICON_UNDO_COLOR once create Result.make end
icon_redo_color_buffer: ICON_REDO_COLOR once create Result.make end
icon_restore_color_buffer: ICON_RESTORE_COLOR once create Result.make end
icon_maximize_color_buffer: ICON_MAXIMIZE_COLOR once create Result.make end
icon_minimize_all_color_buffer: ICON_MINIMIZE_ALL_COLOR once create Result.make end
icon_restore_all_color_buffer: ICON_RESTORE_ALL_COLOR once create Result.make end
icon_close_color_buffer: ICON_CLOSE_COLOR once create Result.make end
icon_format_text_color_buffer: ICON_FORMAT_TEXT_COLOR once create Result.make end
icon_new_development_tool_color_buffer: ICON_NEW_DEVELOPMENT_TOOL_COLOR once create Result.make end
icon_folders_color_buffer: ICON_FOLDERS_COLOR once create Result.make end
icon_help_tool_color_buffer: ICON_HELP_TOOL_COLOR once create Result.make end
icon_shell_color_buffer: ICON_SHELL_COLOR once create Result.make end
icon_zoom_in_color_buffer: ICON_ZOOM_IN_COLOR once create Result.make end
icon_zoom_out_color_buffer: ICON_ZOOM_OUT_COLOR once create Result.make end
icon_supplier_color_buffer: ICON_SUPPLIER_COLOR once create Result.make end
icon_edit_expression_color_buffer: ICON_EDIT_EXPRESSION_COLOR once create Result.make end
icon_tool_color_buffer: ICON_TOOL_COLOR once create Result.make end
icon_reset_diagram_color_buffer: ICON_RESET_DIAGRAM_COLOR once create Result.make end
icon_check_exports_color_buffer: ICON_CHECK_EXPORTS_COLOR once create Result.make end
Icon_bparrow_color_buffer: ICON_BPARROW_COLOR once create Result.make end
Icon_client_link_buffer: CLIENTLNK once create Result.make end
icon_auto_slice_limits_color_buffer: ICON_AUTO_SLICE_LIMITS_COLOR once create Result.make end
icon_format_exporteds_color_buffer: ICON_FORMAT_EXPORTEDS_COLOR once create Result.make end
end

View File

@ -0,0 +1,21 @@
note
description: "[
{COMMAND} to add a field to a {SCHEMA}
]"
author: "Jimmy J. Johnson"
copyright: "Copyright 2012, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/commands/add_field_command.e $"
date: "$Date: 2012-03-16 14:05:07 -0400 (Fri, 16 Mar 2012) $"
revision: "$Revision: 7 $"
class
ADD_FIELD_COMMAND
inherit
EDIT_COMMAND
create
make
end

View File

@ -0,0 +1,153 @@
note
description: "[
Used by {EDIT_TOOL} to add or remove a {FIELD} in a {SCHEMA}.
Note: this is not to be confused with {EDIT_COMMAND} which is used
to change the "data" in a record or to change the positioning of a
{FIELD}; this changes the {SCHEMA} itself.
]"
date: "6 Oct 07"
author: "Jimmy J. Johnson"
copyright: "Copyright 2012, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/commands/change_fields_command.e $"
date: "$Date: 2013-04-25 18:11:22 -0400 (Thu, 25 Apr 2013) $"
revision: "$Revision: 14 $"
class
CHANGE_FIELDS_COMMAND
inherit
JJ_COMMAND
redefine
text,
affected_objects,
execute,
undo,
is_executable,
is_undoable
end
create
make
feature {NONE} -- Initialization
make (a_schema: like schema; a_field: like field)
-- Create an instance
do
default_create
schema := a_schema
field := a_field
end
feature -- Access
text: STRING
-- Name of this command
do
Result := "Change schema"
end
schema: SCHEMA
-- The SCHEMA being changed
field: FIELD
-- FIELD which identifies the "item" to be changed
affected_objects: LINKED_SET [ANY]
-- Set of objects changable by this command
do
Result := Precursor {JJ_COMMAND}
Result.extend (schema)
Result.extend (field)
end
feature -- Element change
set_schema (a_schema: like schema)
-- Change `schema'
require
schema_exists: a_schema /= Void
do
schema := a_schema
ensure
schema_assigned: schema = a_schema
end
set_field (a_field: FIELD)
-- Change `field'
require
field_exists: a_field /= Void
do
field := a_field
ensure
field_assigned: field = a_field
end
feature -- Basic operations
execute
-- Perform the command
do
Precursor {JJ_COMMAND}
schema.time_modified.set_now_utc_fine
if is_delete_command then
schema.start
schema.prune (field)
else
schema.extend (field)
end
end
undo
-- Undo the command
do
Precursor {JJ_COMMAND}
schema.time_modified.set_now_utc_fine
if is_delete_command then
schema.extend (field)
else
schema.start
schema.prune (field)
end
end
feature -- Status report
is_executable: BOOLEAN
-- Can the command be executed?
do
Result := Precursor {JJ_COMMAND} and then
(schema /= Void and field /= Void) and then
(is_delete_command implies schema.has (field))
end
is_undoable: BOOLEAN
-- Can the command be undone?
do
Result := PRECURSOR {JJ_COMMAND} and then
(schema /= Void and then field /= Void) and then
(is_delete_command implies not schema.has (field))
end
feature -- Status setting
set_delete_action
-- Make this command delete `field' from `schema' when `execute' is called.
do
is_delete_command := True
end
set_add_action
-- Make this command add `field' to `schema' when `execute' is called.
do
is_delete_command := False
end
feature {NONE} -- Implementation
is_delete_command: BOOLEAN
-- Is this command to be used to delete `field' from `schema'?
end

View File

@ -0,0 +1,217 @@
note
description: "[
Objects used by {JJ_APPLICATION} to allow commands to be
undone and redone.
]"
date: "2 Oct 03"
author: "Jimmy J. Johnson"
copyright: "Copyright 2012, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/commands/command_manager.e $"
date: "$Date: 2012-07-01 01:30:44 -0400 (Sun, 01 Jul 2012) $"
revision: "$Revision: 12 $"
class
COMMAND_MANAGER
inherit
SHARED
export
{NONE} all
undefine
default_create,
copy,
is_equal
end
LINKED_LIST [JJ_COMMAND]
export
{LINKED_LIST}
all
-- {NONE}
-- all
-- {LINKED_LIST}
-- start,
-- forth,
-- first_element,
-- last_element,
-- count,
-- object_comparison,
-- cursor,
-- go_to,
-- index
{ANY}
wipe_out,
prunable,
-- item,
is_empty,
-- readable,
-- off,
has,
is_equal
-- standard_is_equal,
-- copy,
-- same_type
redefine
default_create,
wipe_out
end
create
default_create, make
feature {NONE} -- Initialization
default_create
-- Initialize `Current'.
do
make
end
feature -- Access
marked_index: INTEGER
-- Mark the command at current `last_executed_index'
last_executed_index: INTEGER
-- Index of last executed (and next undoable) command.
command: JJ_COMMAND
-- Last inserted command.
require
not_empty: not is_empty
do
Result := i_th (last_executed_index)
end
feature -- Element change
add_command (a_command: JJ_COMMAND)
-- Remove any commands which have been undone (they will not be
-- executable after `a_command' is added), then add `a command'
-- to the list and execute it.
require
not_has_command: not has (a_command)
do
from go_i_th (last_executed_index + 1)
until after or else is_empty
loop
remove
end
extend (a_command)
execute
check
last_executed_index = index_of (a_command, 1)
end
ensure
command_added: has (a_command)
command_executed: last_executed_index = count
end
set_mark
-- Save a reference to the currently undoable command.
-- Useful for marking the command state at which a
-- system was saved.
do
marked_index := last_executed_index
end
feature -- Status report
is_undoable: BOOLEAN
-- Can a command be undone?
do
Result := last_executed_index > 0
end
is_executable: BOOLEAN
-- Is there a command which can be executed?
-- That is, was one previousely undone or added?
do
Result := last_executed_index + 1 <= count
end
is_at_marked_state: BOOLEAN
-- Is the cursor at item which was marked_index.
-- Useful for marking and checking if / when a system was saved.
do
Result := last_executed_index = marked_index
end
feature -- Basic operations
wipe_out
-- Remove all commands from Current, erasing history.
do
Precursor
last_executed_index := 0
marked_index := 0
end
execute
-- Execute the command at `last_executed_index'.
require
can_execute_a_command: is_executable
local
v: VIEW
c: JJ_COMMAND
do
last_executed_index := last_executed_index + 1
c := i_th (last_executed_index)
c.execute
-- Persistence_manager.extend_objects (c.affected_objects)
-- Get a view so the views with the objects changed
-- by executing the command can be updated.
v := main_windows.first
-- v.notify_views_with_set (c.affected_objects)
v.draw_views_with_set (c.affected_objects)
-- Call `set_widget_states' to update the undo, redo, and save, etc. buttons.
main_windows.do_all (agent {JJ_MAIN_WINDOW}.set_widget_states)
ensure
last_executed_index_incremented: last_executed_index = old last_executed_index + 1
end
undo
-- Reverse execute the last command.
require
can_undo_a_command: is_undoable
local
v: VIEW
c: JJ_COMMAND
do
-- Get the command at the current index and undo it.
c := i_th (last_executed_index)
c.undo
last_executed_index := last_executed_index - 1
-- persistence_manager.extend_objects (c.affected_objects)
-- Need to get a view so the views with the objects changed
-- by undoing the command can be updated.
v := main_windows.first
-- v.notify_views_with_set (c.affected_objects)
v.draw_views_with_set (c.affected_objects)
-- Call `set_widget_states' to update the undo, redo, and save, etc. buttons.
main_windows.do_all (agent {JJ_MAIN_WINDOW}.set_widget_states)
ensure
last_executed_index_decremented: last_executed_index = old last_executed_index - 1
end
feature {NONE} -- Implementation (Handles to "global" application objects)
-- Persistence_manager: PERSISTENCE_MANAGER is
-- -- Handle (for convinience) to the JJ_APPLICATION's `persistence_manager'.
-- local
-- app: JJ_APPLICATION
-- once
-- app ?= (create {EV_ENVIRONMENT}).application
-- check
-- app /= Void
-- -- Because this class if for use by a JJ_APPLICATION
-- end
-- Result := app.persistence_manager
-- ensure
-- result_exists: Result /= Void
-- end
end

View File

@ -0,0 +1,149 @@
note
description: "[
Command used to change a field of an {EDITABLE}.
]"
date: "27 Jan 05"
author: "Jimmy J. Johnson"
copyright: "Copyright 2012, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/commands/edit_command.e $"
date: "$Date: 2013-04-25 18:11:22 -0400 (Thu, 25 Apr 2013) $"
revision: "$Revision: 14 $"
class
EDIT_COMMAND
inherit
JJ_COMMAND
redefine
text,
affected_objects,
execute,
undo,
is_executable,
is_undoable
end
create
make
feature {NONE} -- Initialization
make (a_record: like record; a_field: like field; a_value: like value)
-- Initialize Current
do
default_create
record := a_record
field := a_field
value := a_value
end
feature -- Access
text: STRING
-- Name of this command
do
Result := "Edit record"
end
record: EDITABLE
-- Object to be changed.
field: FIELD
-- FIELD which identifies the "item" to be changed
value: ANY
-- New value
affected_objects: LINKED_SET [ANY]
-- Set of objects changable by this command
do
create Result.make
Result.extend (record)
end
feature -- Element change
set_record (a_record: like record)
-- Change `record'
require
record_exists: a_record /= Void
do
record := a_record
ensure
record_assigned: record = a_record
end
set_field (a_field: FIELD)
-- Change `field'
require
field_exists: a_field /= Void
do
field := a_field
ensure
field_assigned: field = a_field
end
set_value (a_value: ANY)
-- Change `value'.
require
value_exists: a_value /= Void
do
value := a_value
ensure
value_assigned: value = a_value
end
feature -- Basic operations
execute
-- Perform the command
do
if record.has_value (field.label) then
old_field := field
old_value := record.value (field.label)
end
record.extend_value (value, field.label)
Precursor {JJ_COMMAND}
end
undo
-- Undo the command
do
if attached old_field as of then
record.extend_value (of, field.label)
else
record.remove_value (field.label)
end
Precursor {JJ_COMMAND}
end
feature -- Status report
is_executable: BOOLEAN
-- Can the command be executed?
do
Result := Precursor {JJ_COMMAND} and then
record /= Void and field /= Void and value /= Void
end
is_undoable: BOOLEAN
-- Can the command be undone?
do
Result := Precursor {JJ_COMMAND} and then
(record /= Void and (old_field /= Void implies old_value /= Void)) and
record.has_value (field.label)
end
feature {NONE} -- Implementation
old_value: detachable ANY
-- Hold on to the old value in case of `undo'
old_field: detachable FIELD
-- Hold the old field. If Void we know that the record previously
-- did not have a field for the one just added by `execute', so
-- `undo' will remove `field'.
end

View File

@ -0,0 +1,126 @@
note
description: "[
Used by {EDIT_TOOL} to change a {FIELD} in a {SCHEMA}.
Note: this is not to be confused with {EDIT_COMMAND} which is used
to change the "data" in a record or to change the positioning of a
{FIELD}; this changes the {SCHEMA} itself.
]"
date: "16 Mar 06"
author: "Jimmy J. Johnson"
copyright: "Copyright 2012, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/commands/edit_schema_command.e $"
date: "$Date: 2012-03-16 14:05:07 -0400 (Fri, 16 Mar 2012) $"
revision: "$Revision: 7 $"
class
EDIT_SCHEMA_COMMAND
inherit
EDIT_COMMAND
redefine
make,
text,
affected_objects,
execute,
undo,
is_executable,
is_undoable
end
create
make
feature {NONE} -- Initialization
make (a_record: like record; a_field: like field; a_value: like value)
-- Initialize Current
do
Precursor (a_record, a_field, a_value)
create schema
end
feature -- Access
text: STRING
-- Name of this command
do
Result := "Edit schema"
end
schema: SCHEMA
-- The SCHEMA being changed
affected_objects: LINKED_SET [ANY]
-- Set of objects changable by this command
do
Result := Precursor {EDIT_COMMAND}
Result.extend (schema)
Result.extend (field)
end
feature -- Element change
set_schema (a_schema: like schema)
-- Change `schema'
require
schema_exists: a_schema /= Void
do
schema := a_schema
ensure
schema_assigned: schema = a_schema
end
feature -- Basic operations
execute
-- Perform the command
do
schema.time_modified.set_now_utc_fine
Precursor {EDIT_COMMAND}
end
undo
-- Undo the command
do
schema.time_modified.set_now_utc_fine
Precursor {EDIT_COMMAND}
end
feature -- Status report
is_executable: BOOLEAN
-- Can the command be executed?
do
Result := Precursor {EDIT_COMMAND} and then
(schema /= Void and field /= Void)
end
is_undoable: BOOLEAN
-- Can the command be undone?
do
Result := PRECURSOR {EDIT_COMMAND} and then
(schema /= Void and field /= Void)
end
feature -- Status setting
set_delete_action
-- Make this command delete `field' from `schema' when `execute' is called.
do
is_delete_command := True
end
set_add_action
-- Make this command add `field' to `schema' when `execute' is called.
do
is_delete_command := False
end
feature {NONE} -- Implementation
is_delete_command: BOOLEAN
-- Is this command to be used to delete `field' from `schema'?
end

View File

@ -0,0 +1,102 @@
note
description: "[
Root class for commands, allowing undo and redo, and to
facilitate history functions.
]"
author: "Jimmy J. Johnson"
copyright: "Copyright 2012, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/commands/jj_command.e $"
date: "$Date: 2014-06-15 09:17:19 -0400 (Sun, 15 Jun 2014) $"
revision: "$Revision: 18 $"
class
JJ_COMMAND
inherit
ANY
redefine
default_create
end
create
default_create
feature {NONE} -- Initialization
default_create
-- Set up the command
do
create explanation.make
create affected_objects_imp.make
end
feature -- Access
text: STRING
-- Texual representation of what the command does.
do
Result := "do nothing"
end
explanation: LINKED_LIST [STRING]
-- List of reasons why a command was not executed or undone
-- Can be queried after a call to `is_executable' or `is_undoable'
feature -- Basic operations
execute
-- Execute the action represented by the command.
require
executable: is_executable
do
was_executed := True
end
undo
-- Reverse the action performed in `execute'.
require
undoable: is_undoable
do
was_executed := False
end
affected_objects: LINKED_SET [ANY]
-- List of object whose views must be updated
do
Result := affected_objects_imp
end
feature -- Status report
is_executable: BOOLEAN
-- Can the command be executed?
do
explanation.wipe_out
Result := not was_executed
if not Result then
explanation.extend ("Command already executed")
end
end
is_undoable: BOOLEAN
-- Can the command be undone?
do
explanation.wipe_out
Result := was_executed
if not Result then
explanation.extend ("Command not yet executed")
end
end
was_executed: BOOLEAN
-- Has the command been executed?
feature {NONE} -- Implementation
affected_objects_imp: like affected_objects
-- List of objects affected by Current
end

View File

@ -0,0 +1,44 @@
note
description: "[
A {CONTROL} which allows the editting of a {COMPARABLE}.
]"
date: "24 Feb 04"
author: "Jimmy J. Johnson"
copyright: "Copyright 2009, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/controls/comparable_control.e $"
date: "$Date: 2012-03-16 14:05:07 -0400 (Fri, 16 Mar 2012) $"
revision: "$Revision: 7 $"
deferred class
COMPARABLE_CONTROL
inherit
CONTROL
redefine
value,
default_field
end
feature -- Access
value: COMPARABLE
-- A new object represented by the display.
-- Define to convert the display into the
-- desired type.
do
check attached {COMPARABLE} Precursor as c then
Result := c
end
end
feature {FIELD_EDITOR_VIEW} -- Implementation
default_field: COMPARABLE_FIELD
-- Create a field to be used if Current was `default_create'd.
-- The anchor for `field'.
deferred
end
end

View File

@ -0,0 +1,455 @@
note
description: "[
Used with {EDITOR} classes to make EV_WIDGETs for displaying and
editting an object. It is composed of an EV_TEXT_FIELD, `display'
and an optional EV_LABEL, `label' which can be positioned to the
top, left, right, or bottom of the `display'.
A {CONTROL} can be created normally with `default_create' or using
`create_from_field'. Feature `create_from_field' is used to allow
creation of controls from a {SCHEMA} (a list of {FIELD}) for placement
in an {DIALOG_EDITOR_VIEW} (a form maker). Features from `field' can
then be used to determine placement, size, etc for the {CONTROL}.
The object to be editted is placed into the control with feature
`set_data' and is stored in `data' from ANY. The current `value'
of the object can be obtained if `is_display_valid'. Feature
`is_display_valid' is True when the string displayed in the `text'
field of `display' can be converted into an object of the correct
type. This convertion is ultimately done by feature `string_to_type'
from class FIELD through `field'.
]"
instructions: "[
To allow the editting of objects of types other than STRING, redefine
`default_field', or create an heir of {FIELD}, redefine `type'.
Feature `draw' takes care of checking the `values' type and putting
into `display' the appropriate string if the type of the `value'
does not conform to the control, or if there is no data, etc. If
the data is good then `draw_display' is called to show the actual
data. Therefore, do not redefine `draw'; redefine `draw_data'.
]"
date: "5 Mar 03"
author: "Jimmy J. Johnson"
copyright: "Copyright 2009, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/controls/control.e $"
date: "$Date: 2012-03-16 14:05:07 -0400 (Fri, 16 Mar 2012) $"
revision: "$Revision: 7 $"
deferred class
CONTROL
inherit
EV_STOCK_COLORS
rename
implementation as colors_implementation
export
{NONE} all
undefine
default_create,
copy,
is_equal
end
-- Current must be an EV_WIDGET of some sort in order to be placed into
-- and EV_CONTAINER. That's the whole point; do not delete EV_FIXED
-- without adding some other widget.
EV_FIXED
redefine
set_data,
initialize,
create_interface_objects,
destroy,
is_destroyed,
is_in_default_state
-- enable_sensitive,
-- disable_sensitive,
-- is_sensitive
end
feature {NONE} -- Initialization
create_interface_objects
-- Create objects to be used by `Current' in `initialize'
-- Implemented by descendants to create attached objects
-- in order to adhere to void-safety due to the implementation bridge pattern.
do
Precursor {EV_FIXED}
create valid_change_actions
create select_actions
create label
create display
field := Default_field
end
initialize
-- Set up the control
do
Precursor {EV_FIXED}
label.set_minimum_width (1)
label.set_minimum_height (1)
display.set_minimum_height (20)
display.set_minimum_width (50)
extend (label)
extend (display)
-- descendents must create the `display'
-- and set_actions for display.
label_position := Label_top
label.set_pebble_function (agent get_field)
-- label.set_drag_and_drop_mode
set_actions
field.control_list.extend (Current)
end
make_from_field (a_field: like field)
-- Create a control using the values in `a_field'.
do
default_create
field := a_field
field.control_list.extend (Current)
end
set_actions
-- Add actions to the controls of Current.
do
display.change_actions.extend (agent on_display_changed)
label.pointer_button_press_actions.extend (agent on_control_selected)
display.pointer_button_press_actions.extend (agent on_control_selected)
end
feature -- Access
value: ANY
-- A new object created from the `text' in `display'.
-- Normally only redefine to change the result type by using an
-- assignment attempt on Precursor. This is to to preserve
-- the "definition" post-condition.
require
display_is_valid: is_display_valid
do
Result := field.string_to_type (display.text)
ensure
valid_result: Result /= Void
definition: equal (Result, field.string_to_type (display.text))
end
field: like Default_field
-- Dictates appearanced of current Control
-- Redefine `Default_field' to change the type.
valid_change_actions: EV_NOTIFY_ACTION_SEQUENCE
-- Actions to be called when this control changes to a valid value.
select_actions: EV_NOTIFY_ACTION_SEQUENCE
-- Actions to be called when this control is selected
feature -- Element change
frozen set_data (a_data: ANY)
-- Pass in any type of object and display the string representation
-- of it by calling `refresh'.
-- The argument can be Void as it will be checked on `refresh' and
-- the control will so indicate.
do
Precursor {EV_FIXED} (a_data)
refresh
end
set_label_top
-- Make the 'label' appear to the top of the `display'
do
label_position := Label_top
ensure
label_position_correct: label_position = Label_top
end
set_label_bottom
-- Make the 'label' appear to the bottom of the `display'
do
label_position := Label_bottom
ensure
label_position_correct: label_position = Label_bottom
end
set_label_left
-- Make the `label' appear to the left of the `display'.
do
label_position := Label_left
ensure
label_position_correct: label_position = Label_left
end
set_label_right
-- Make the 'label' appear to the right of the `display'
do
label_position := Label_right
ensure
label_position_correct: label_position = Label_right
end
set_label_none
-- Make the 'label' not appear at all. Make a labelless control.
do
label_position := Label_none
ensure
label_position_correct: label_position = Label_none
end
feature -- Basic operations
destroy
-- Remove Current from the `control_list' in `field' when
-- the underlying graphical object is destroyed.
do
Precursor {EV_FIXED}
field.control_list.prune (Current)
ensure then
control_not_in_list: not field.control_list.has (Current)
end
build
-- Position and size the `label' and `display' based on
-- values in `field'.
local
fh: INTEGER
f: EV_FONT
s_size: TUPLE [INTEGER, INTEGER]
do
label.set_text (field.label)
set_item_height (label, (label.font.height).max (label.minimum_height))
set_item_width (label, (label.font.string_width (label.text)).max (label.minimum_width))
-- set_item_height (display, field.height.item.max (display.minimum_height))
set_item_width (display, field.width.item.max (display.minimum_width))
-- Set the height of the font in `display'.
fh := field.height.item
f := display.font.twin
f.set_height (fh.max (1)) -- `max' to meet precondition h > 0
display.set_font (f)
-- Use any string because all I need is the height a string
-- would be if it were displayed in that font. I can't use
-- display.text because when the control is first built there
-- may not be any text in it.
s_size := f.string_size ("This is a STRING.")
check attached {INTEGER_REF} s_size.item (2) as dh then
-- because result of `string_size' is a TUPLE [INTEGER, INTEGER]
set_item_height (display, dh.item.max (display.minimum_height))
end
-- Place the label in the correct possition.
inspect
label_position
when Label_left then
set_item_position (label, 0, 0)
set_item_position (display, label.x_position + label.width, 0)
set_minimum_width (label.width + display.width)
set_minimum_height ((display.height).max (label.height))
when Label_top then
set_item_position (label, 0, 0)
set_item_position (display, 0, label.font.height)
set_minimum_width ((display.width).max (label.width))
set_minimum_height (display.height + label.height)
when Label_right then
set_item_position (label, field.width.item.max (display.minimum_width), 0)
set_item_position (display, 0, 0)
set_minimum_width (label.width + display.width)
set_minimum_height ((display.height).max (label.height))
when Label_bottom then
set_item_position (label, 0, field.height.item.max (display.minimum_height))
set_item_position (display, 0, 0)
set_minimum_width ((display.width).max (label.width))
set_minimum_height (display.height + label.height)
when Label_none then
set_item_height (label, label.minimum_height)
set_item_width (label, label.minimum_width)
set_item_position (label, 0, 0)
set_minimum_width (display.width)
set_minimum_height (display.height)
else
check
should_not_happen: False
end
end
end
frozen refresh
-- Displays the string representation of `data'.
-- Normally do not redefine; redefine `load_display' instead.
do
display.change_actions.block
-- change_actions.block
if field.is_calculated then
-- display.disable_sensitive
else
display.enable_sensitive
end
if field.is_calculated then
display.set_text ("{CONTROL}.refresh -- fix me")
-- display.set_text (field.function_result_as_string)
elseif attached data as d then
display.set_text (field.type_to_string (d))
else
display.set_text ("Void")
end
build_colors
-- change_actions.resume
display.change_actions.resume
end
feature -- Query
is_display_valid: BOOLEAN
-- Is the representation in `display' valid for
-- object of `Type' based on `field'?
-- Default is True because assumes `Type' is an ANY.
do
Result := not equal (display.text, Void_representation) and then
field.is_valid_data (display.text)
end
feature -- Status report
is_in_default_state: BOOLEAN = True
-- redefined to make it get past the Eiffel Vision2
-- post condition of `default create'.
is_destroyed: BOOLEAN
-- Is current usable as a widget?
do
Result := Precursor {EV_FIXED} and not field.control_list.has (Current)
end
-- is_sensitive: BOOLEAN is
-- -- Is the object sensitive to user input?
-- do
-- Result := display.is_sensitive
-- end
--
--feature -- Status setting
--
-- enable_sensitive is
-- -- Make the `display' sensitive to user input.
-- do
-- display.enable_sensitive
-- end
--
-- disable_sensitive is
-- -- Make the `display' unresponsive to user input.
-- do
-- display.disable_sensitive
-- end
feature {NONE} -- Implementation
load_display (a_value: STRING)
-- Put `a_value' into `display'.
-- This feature should be called when redefining.
-- require
-- value_exists: a_value /= Void
do
display.set_text (a_value.out)
end
build_colors
-- Change display to red if the `text' in `display'
-- (not necessarilly the same `data' that is in
-- Current) is not valid.
do
if is_display_valid then
display.set_foreground_color (Black)
else
display.set_foreground_color (Red)
end
end
get_field: like field
-- Getter function for `field' so can use `set_pebble_function'.
-- `set_pebble_function' cannot take an attribute such as
-- `field' as a parameter; it must be a function.
do
Result := field
end
refresh_dependent_controls
-- Refresh all other controls which are dependent on
-- this one. Called when display changes.
local
c_list: LINKED_LIST [CONTROL]
c: CONTROL
do
c_list := field.controls_dependent
from c_list.start
until c_list.exhausted
loop
c := c_list.item
if c /= Current then
c.refresh
end
c_list.forth
end
end
on_display_changed
-- Update because something was done in the control
do
build_colors
refresh_dependent_controls
if is_display_valid then
valid_change_actions.call ([Current])
end
end
on_control_selected (a_x, a_y, button: INTEGER;
a_x_tilt, a_y_tilt, a_pressure: DOUBLE;
a_screen_x, a_screen_y: INTEGER)
-- Execute the agents in `select_actions'
-- The parameters are ignored but are needed to match the
-- signature of the `pointer_button_press_actions' of `display'.
-- EV_ACTION_SEQUENCE [TUPLE [x, y, button: INTEGER; x_tilt, y_tilt, pressure: DOUBLE; screen_x, screen_y: INTEGER]]
do
select_actions.call ([Current])
end
feature {FIELD_EDITOR_VIEW} -- Implementation
label: EV_LABEL
-- Displays the name (`key') if `is_label_shown'
display: EV_TEXT_FIELD
-- Displays the `value'.
label_position: INTEGER
-- Where is the label displayed? (top,
-- bottom, left, or right of the `display'.
Label_top, Label_bottom, Label_left, Label_right, Label_none: INTEGER = unique
-- Position of `label' in relation to display
default_field: FIELD
-- Create a field to be used if Current was `default_create'd.
-- The anchor for `field'.
deferred
end
Void_representation: STRING_32
-- A string with the value "Void".
once
create Result.make_from_string ("Void")
ensure
definition: equal (Result, ("Void").as_string_32)
end
invariant
field_exists: field /= Void
label_exists: label /= Void
display_exists: display /= Void
select_actions_exists: select_actions /= Void
valid_change_actions_exists: valid_change_actions /= Void
in_control_list_if_not_destroyed: not is_destroyed implies field.control_list.has (Current)
not_in_control_list_if_destroyed: is_destroyed implies not field.control_list.has (Current)
is_sensitive_definition: is_sensitive implies display.is_sensitive
end

View File

@ -0,0 +1,102 @@
note
description: "[
A {CONTROL} for changing integers
]"
author: "Jimmy J. Johnson"
copyright: "Copyright 2012, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/controls/integer_control.e $"
date: "$Date: 2012-03-16 14:05:07 -0400 (Fri, 16 Mar 2012) $"
revision: "$Revision: 7 $"
class
INTEGER_CONTROL
inherit
SPIN_CONTROL
redefine
initialize,
value,
set_actions,
increment,
decrement
end
create
default_create,
make_from_field
feature {NONE} -- Initialization
initialize
-- Set up the object
do
Precursor {SPIN_CONTROL}
delta := 1
end
set_actions
-- Add actions to the `display'.
do
Precursor {SPIN_CONTROL}
end
feature -- Access
value: INTEGER_REF
-- A new object represented by the string in the display.
-- Redefine to convert the displayed string into the
-- desired type.
do
check attached {INTEGER_REF} Precursor {SPIN_CONTROL} as c then
Result := c
end
end
delta: INTEGER
-- The amount to change `value' when one of the buttons is pressed.
feature -- Element change
set_delta (a_delta: INTEGER)
-- Change `delta'
require
positive_delta: a_delta > 0
do
delta := a_delta
ensure
delta_assigned: delta = a_delta
end
feature -- Basic operations
increment
-- Increase the `value' by amount `step'.
do
Precursor {SPIN_CONTROL}
set_data (value.item + delta)
on_display_changed
end
decrement
-- Decrease the `value' by amount `step'.
do
Precursor {SPIN_CONTROL}
set_data (value.item - delta)
on_display_changed
end
feature {NONE} -- Implementation
default_field: INTEGER_FIELD
-- Dictates appearanced of current Control
do
create Result
end
invariant
positive_delta: delta > 0
end

View File

@ -0,0 +1,212 @@
note
description: "[
A {CONTROL} that adds an `increment_button' and a `decrement_button'
which the user can press to increase or decrease the `value'.
Feature `increment' and `decrement' must be redefined to change
`value', but call the Precursors to make the buttons repeat.
]"
date: "23 Aug 04"
author: "Jimmy J. Johnson"
copyright: "Copyright 2012, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/controls/spin_control.e $"
date: "$Date: 2012-03-16 14:05:07 -0400 (Fri, 16 Mar 2012) $"
revision: "$Revision: 7 $"
deferred class
SPIN_CONTROL
inherit
COMPARABLE_CONTROL
redefine
initialize,
create_interface_objects,
set_actions,
build
-- enable_sensitive,
-- disable_sensitive,
-- is_sensitive
end
feature {NONE} -- Initialization
initialize
-- Set up the control
do
extend (increment_button)
extend (decrement_button)
show_buttons
Precursor {COMPARABLE_CONTROL}
end
create_interface_objects
-- Create objects to be used by `Current' in `initialize'
-- Implemented by descendants to create attached objects
-- in order to adhere to void-safety due to the implementation bridge pattern.
do
Precursor {COMPARABLE_CONTROL}
create timeout
create increment_button
create decrement_button
timeout.set_interval (500) -- one-half a second?
increment_button.set_text ("+")
decrement_button.set_text ("-")
increment_button.set_minimum_width (10)
decrement_button.set_minimum_width (10)
increment_button.set_minimum_height (1)
decrement_button.set_minimum_height (1)
end
set_actions
-- Add actions to the buttons.
do
Precursor {COMPARABLE_CONTROL}
-- To make the spin function work `increment' and `decrement' actions are
-- added, not to the buttons, but to a timer which will be started and killed
-- when the appropriate button is pressed and released.
-- `Force_extend' was used to bypass the signature for the agents.
increment_button.pointer_button_press_actions.force_extend (agent start_timeout (agent increment))
increment_button.pointer_button_release_actions.force_extend (agent kill_timeout)
decrement_button.pointer_button_press_actions.force_extend (agent start_timeout (agent decrement))
decrement_button.pointer_button_release_actions.force_extend (agent kill_timeout)
end
feature -- Status report
is_buttons_hidden: BOOLEAN
-- Are the `increment_button' and the `decrement_button'
-- hidden from view?
-- is_sensitive: BOOLEAN is
-- -- Can the control react to input?
-- do
-- Result := Precursor {COMPARABLE_CONTROL} and then
-- increment_button.is_sensitive and
-- decrement_button.is_sensitive
-- end
feature -- Status setting
hide_buttons
-- Make the `increment_button' and the `decrement_button'
-- not appear in the control.
do
increment_button.hide
decrement_button.hide
end
show_buttons
-- Make the `increment_button' and the `decrement_button'
-- appear in the control.
do
increment_button.show
decrement_button.show
end
-- enable_sensitive is
-- -- Make the `display' sensitive to user input.
-- do
-- -- Redefined to take care of the added buttons
-- Precursor {COMPARABLE_CONTROL}
-- increment_button.enable_sensitive
-- decrement_button.enable_sensitive
-- end
--
-- disable_sensitive is
-- -- Make the `display' unresponsive to user input.
-- do
-- -- Redefined to take care of the added buttons
-- Precursor {COMPARABLE_CONTROL}
-- increment_button.disable_sensitive
-- decrement_button.disable_sensitive
-- end
feature -- Basic operations
increment
-- Intended to be redefined to increase the magnitude of `value'.
-- Default function only sets the `timeout' to a shorter repeat interval.
do
timeout.set_interval (100)
end
decrement
-- Intended to be redefined to decrease the magnitude of `value'.
-- Default function only sets the `timeout' to a shorter repeat interval.
do
timeout.set_interval (100)
end
feature {NONE} -- Implementation
build
-- Position the widgets
local
x, y: INTEGER
h: INTEGER
do
Precursor {COMPARABLE_CONTROL}
-- set the size of the buttons
h := display.height // 2
x := display.x_position + display.width
y := display.y_position + (display.y_position // 2)
if label_position = Label_right then
x := x + label.x_position + label.width
end
set_item_position (increment_button, x, display.y_position)
set_item_height (increment_button, h.max (increment_button.minimum_height))
set_item_width (increment_button, h.max (increment_button.minimum_width))
set_item_height (decrement_button, h.max (decrement_button.minimum_height))
set_item_width (decrement_button, h.max (decrement_button.minimum_width))
y := increment_button.y_position + increment_button.height
set_item_position (decrement_button, x, y)
set_minimum_width (minimum_width + increment_button.width)
end
feature {NONE} -- Implementation
start_timeout (a_procedure: PROCEDURE)
-- Calls `a_procedure' once and then sets up `timeout' to
-- execute `a_procedure' repeatedly.
require
procedure_exists: a_procedure /= Void
do
a_procedure.call ([])
timeout.set_interval (1000)
timeout.actions.extend (a_procedure)
end
kill_timeout
-- Remove actions from the `timeout' so it does not
-- continue to repeat even when the button is released.
do
timeout.actions.wipe_out
timeout.reset_count
end
increment_button: EV_BUTTON
-- Press to increase the `value'
decrement_button: EV_BUTTON
-- Press to decrease the `value'
timeout: EV_TIMEOUT
-- Used when a button is held down.
invariant
-- ensure sure buttons are created
increment_button_exists: increment_button /= Void
decrement_button_exists: decrement_button /= Void
timeout_exists: timeout /= Void
-- ensure buttons are part of current
increment_button_in_current: has (increment_button)
decrement_button_in_current: has (decrement_button)
is_sensitive_definition: is_sensitive implies increment_button.is_sensitive and
decrement_button.is_sensitive
end

View File

@ -0,0 +1,52 @@
note
description: "[
A {CONTROL} in which to edit strings
]"
author: "Jimmy J. Johnson"
copyright: "Copyright 2012, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/controls/string_control.e $"
date: "$Date: 2012-03-16 14:05:07 -0400 (Fri, 16 Mar 2012) $"
revision: "$Revision: 7 $"
class
STRING_CONTROL
inherit
-- NOTE: do not inherit from other widgets such as EV_TEXT_FIELD. This
-- causes too many clashes with EV_FIXED coming from CONTROL.
-- I have gone up that path too many times. DO NOT DO IT AGAIN!
COMPARABLE_CONTROL
redefine
value
end
create
default_create,
make_from_field
feature {NONE} -- Initialization
feature -- Access
value: STRING_32
-- A new object represented by the string in the display.
-- Redefine to convert the displayed string into the
-- desired type.
do
check attached {STRING_32} Precursor as c then
Result := c
end
end
feature {NONE} -- Implementation
default_field: STRING_FIELD
-- Dictates appearanced of current Control
do
create Result
end
end

View File

@ -0,0 +1,48 @@
note
description: "[
A {SCHEMA} that describes placement of a {INTEGER_FIELD}
]"
author: "Jimmy J. Johnson"
copyright: "Copyright 2012, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/controls/string_field_schema.e $"
date: "$Date: 2012-03-16 14:05:07 -0400 (Fri, 16 Mar 2012) $"
revision: "$Revision: 7 $"
class
STRING_FIELD_SCHEMA
inherit
FIELD_SCHEMA
redefine
default_create
end
create
default_create
create {LINKED_LIST}
make
feature {NONE} -- Initialize
default_create
-- Create an instance
do
Precursor {FIELD_SCHEMA}
extend (length_field)
end
feature -- Access
length_field: INTEGER_FIELD
-- Create a field to store the `number_of_characters' of a FIELD
once
create Result
Result.set_label ("Length")
Result.set_x (30)
Result.set_y (0)
Result.set_width (50)
end
end

View File

@ -0,0 +1,111 @@
note
description: "[
Used with {EDITOR} classes to make EV_WIDGETs for displaying and
editting data which is a {YMD_TIME}
]"
date: "7 Mar 03"
author: "Jimmy J. Johnson"
copyright: "Copyright 2012, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/controls/ymd_time_control.e $"
date: "$Date: 2012-03-16 14:05:07 -0400 (Fri, 16 Mar 2012) $"
revision: "$Revision: 7 $"
class
YMD_TIME_CONTROL
inherit
YMD_CONSTANTS
undefine
default_create,
is_equal,
copy
end
SPIN_CONTROL
redefine
create_interface_objects,
initialize,
value,
increment,
decrement
end
create
default_create,
make_from_field
feature {NONE} -- Initialization
create_interface_objects
-- Create objects to be used by `Current' in `initialize'
-- Implemented by descendants to create attached objects
-- in order to adhere to void-safety due to the implementation bridge pattern.
do
Precursor {SPIN_CONTROL}
set_delta (One_day)
end
initialize
-- Set up the control
do
Precursor {SPIN_CONTROL}
end
feature -- Access
value: YMD_TIME
-- A new object represented by the string in the display.
-- Redefine to convert the displayed string into the
-- desired type.
do
check attached {YMD_TIME} Precursor {SPIN_CONTROL} as c then
Result := c
end
end
delta: YMD_DURATION
-- The amount to change `value' when one of the buttons is pressed.
feature -- Element change
set_delta (a_delta: like delta)
-- Change `delta'
require
positive_delta: not a_delta.is_negative
do
delta := a_delta.twin
ensure
delta_assigned: equal (delta, a_delta)
end
feature -- Basic operations
increment
-- Increase the `value' by amount `step'.
do
Precursor {SPIN_CONTROL}
set_data (value + delta)
on_display_changed
end
decrement
-- Decrease the `value' by amount `step'.
do
Precursor {SPIN_CONTROL}
set_data (value - delta)
on_display_changed
end
feature {NONE} -- Implementation
default_field: YMD_TIME_FIELD
-- Dictates appearanced of current Control
do
create Result
end
end

View File

@ -0,0 +1,49 @@
note
description: "[
A {FIELD} used to create a control to edit a COMPARABLE.
]"
date: "24 Feb 04"
author: "Jimmy J. Johnson"
copyright: "Copyright 2012, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/fields/comparable_field.e $"
date: "$Date: 2012-03-16 14:05:07 -0400 (Fri, 16 Mar 2012) $"
revision: "$Revision: 7 $"
deferred class
COMPARABLE_FIELD
inherit
FIELD
redefine
default_create,
as_widget,
Type
end
feature {NONE} -- Initialization
default_create
-- Initialize `Current'.
do
Precursor {FIELD}
end
feature -- Transformation
as_widget: COMPARABLE_CONTROL
-- Each descendent class must create the appropriate control.
-- Redefined to change the type.
deferred
end
feature --
Type: COMPARABLE
-- Anchor for `value'
deferred
end
end

View File

@ -0,0 +1,483 @@
note
description: "[
Used with {EDITOR} classes.
Object that describes how to create a {CONTROL}.
]"
date: "7 Mar 03"
author: "Jimmy J. Johnson"
copyright: "Copyright 2012, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/fields/field.e $"
date: "$Date: 2012-03-16 14:05:07 -0400 (Fri, 16 Mar 2012) $"
revision: "$Revision: 7 $"
deferred class
FIELD
inherit
FIELD_CONSTANTS
undefine
default_create,
is_equal
end
EDITABLE
redefine
default_create,
schema,
is_schema_available,
schema_imp,
set_schema,
remove_schema
end
feature {NONE} -- Initialization
default_create
-- Initialize the object.
do
Precursor {EDITABLE}
-- schema_imp := Field_schema
-- Add the "data". The data is the lables and positions.
set_label (Default_label_field_name)
set_x (Default_x)
set_y (Default_y)
set_width (Default_width)
set_height (Default_height)
end
feature -- Access
schema: FIELD_SCHEMA
-- The schema used to display and edit a FIELD.
once
create Result
Result.extend_mandatory (Label_field)
Result.extend_mandatory (X_field)
Result.extend_mandatory (Y_field)
Result.extend_mandatory (Width_field)
Result.extend_mandatory (Height_field)
-- Result.set_up
end
Type: ANY
-- Anchor.
deferred
end
label: STRING_32
-- Identifier of this field.
do
check attached {STRING_32} value (Default_label_field_name) as s then
Result := s
end
end
x: INTEGER_REF
-- x-position of field in a dialog
do
check attached {INTEGER_REF} value (Default_x_field_name) as i then
Result := i
end
end
y: INTEGER_REF
-- y-position of field in a dialog
do
check attached {INTEGER_REF} value (Default_y_field_name) as i then
Result := i
end
end
width: INTEGER_REF
-- Width of this field. Used to create a control
-- that is `width' pixels wide.
do
check attached {INTEGER_REF} value (Default_width_field_name) as i then
Result := i
end
end
height: INTEGER_REF
-- Height of this field. Used to create a control
-- that is `height' pixels tall.
do
check attached {INTEGER_REF} value (Default_height_field_name) as i then
Result := i
end
end
-- format: STRING is
-- -- Used to set how the data is displayed.
-- do
-- Result ?= value_by_field (format_field)
-- ensure
-- valid_result: Result /= Void
-- end
--
-- posible_formats: LINKED_SET [STRING]
-- -- Set of posible formats which can be used in `format'.
--
-- function: STRING_32
-- -- Function to be assigned to any widget created from
-- -- this field.
-- do
-- Result ?= value_by_field (schema.formula_field)
-- ensure
-- valid_result: Result /= Void
-- end
-- function_result_as_string: STRING_32
-- -- The result of executing the `function' converted to
-- -- a string.
-- local
---- p: FUNCTION_PARSER
-- r: ANY
-- t: like Type
-- do
-- if function = Void then
-- Result := "Value is calculated, but no formula entered."
-- else
---- p.parse_string (function)
---- r := parser.last_value
-- if r.same_type (Type) then
-- t ?= r
-- check
-- should_not_happen: t /= Void
-- -- Because `r.same_type' insures `r' conforms to `t'.
-- end
-- Result := type_to_string (t)
-- else
-- -- there was a parse error.
-- Result ?= r
-- check
-- should_not_happen: Result /= Void
-- -- Because parser should return an error string
-- -- if it failed to get a good result.
-- end
-- end
-- end
-- end
-- function_result_as_type: like type
-- -- The result of executing the `function'.
-- require
-- has_function: function /= Void
-- function_works: is_valid_function (function)
-- local
---- p: FUNCTION_PARSER
-- do
---- p.parse_string (function)
---- Result := p.last_value
-- end
feature -- Element Change
set_label (a_string: STRING_32)
-- Change the `name'.
require
string_exists: a_string /= Void
do
extend_value (a_string, Default_label_field_name)
ensure
id_was_set: equal (label, a_string)
end
set_x (a_x: INTEGER)
do
extend_value (a_x, Default_x_field_name)
ensure
x_was_set: x.item = a_x
end
set_y (a_y: INTEGER)
do
extend_value (a_y, Default_y_field_name)
ensure
y_was_set: y.item = a_y
end
set_width (a_width: INTEGER)
-- Change `width'
require
valid_width: a_width > 0
do
extend_value (a_width, Default_width_field_name)
ensure
width_was_set: width.item = a_width
end
set_height (a_height: INTEGER)
-- Change `height'
require
valid_height: a_height > 0
do
extend_value (a_height, Default_height_field_name)
ensure
height_was_set: height.item = a_height
end
-- set_format (a_format: STRING) is
-- -- Change `format'
-- require
-- schema_exists: schema /= Void
-- valid_format: posible_formats.has (a_format)
-- do
-- extend_with_field (a_format, format_field)
-- extend (a_format, "format")
-- ensure
-- format_was_set: format = a_format
-- end
-- set_function (a_string: STRING) is
-- -- Change the `formula'
-- require
-- schema_exists: schema /= Void
-- string_exists: a_string /= Void
-- do
-- extend_with_field (a_string, schema.formula_field)
-- ensure
-- formula_was_set: equal (formula, a_string)
-- end
feature -- Status report
is_calculated: BOOLEAN
-- Should the value (produced by any control) use the result
-- of executing (parsing) the `formula'? (Oposite is to use
-- what ever data is set into the control.)
-- fix -- Set by `use_formula' or `use_data'.
do
-- Result := formula.count >= 1
end
is_schema_available: BOOLEAN
-- Does Current have a schema?
-- Redefined to always be True to follow the redefinition of `schema'.
do
Result := True
end
feature -- Status setting
use_function
-- Set `is_calculated' to True
do
-- is_calculated := True
end
use_data
-- Set `is_calculated' to False
do
-- is_calculated := False
end
feature -- Query
-- parser: PARSER is
-- -- Parser for evaluating the `formula'
-- once
-- create Result
-- end
is_valid_data (a_value: ANY): BOOLEAN
-- Is `a_value' valid data for this field?
-- Must redefine `parsed' if redefine this feature.
do
Result := a_value /= Void and then a_value.conforms_to (Type)
end
is_valid_function (a_function: STRING_32): BOOLEAN
-- Can `a_function' be parsed, returning a result
-- of the correct `type'?
local
-- p: FUNCTION_PARSER
do
-- p.parse_string (a_function)
-- Result := p.last_value.same_type (type)
end
string_to_type (a_string: STRING_32): like Type
-- Convert `a_string' to an object of `Type'
-- Default is to simply return `a_string' since
-- it conforms to ANY if it exists.
require
valid_string: is_valid_data (a_string)
do
Result := a_string
end
type_to_string (a_value: ANY): STRING_32
-- The string representation of `a_value'.
-- The default is to call feature `out' on `a_value' or to
-- return the string "Void" or "Non-conforming data".
do
if a_value = Void then
Result := "Void"
elseif a_value /= Void and then not a_value.conforms_to (Type) then
Result := "Non-conforming data"
else
Result := a_value.out
end
ensure
result_exists: Result /= Void
end
controls_from: LINKED_LIST [CONTROL]
-- All the controls whose positioning is dictated by
-- this field (i.e. created from this field)
local
c_list: LINKED_LIST [CONTROL]
c: CONTROL
do
create Result.make
c_list := control_list
from c_list.start
until c_list.exhausted
loop
c := c_list.item
if c.field = Current then -- or c.field.formula.has_field (Current) then
-- make a formula class and put parser in it.
Result.extend (c)
end
c_list.forth
end
end
controls_dependent: LINKED_LIST [CONTROL]
-- All the controls in `controls_from' plus any controls
-- whose `formula' contains a reference to Current.
local
c_list: LINKED_LIST [CONTROL]
c: CONTROL
do
create Result.make
c_list := control_list
from c_list.start
until c_list.exhausted
loop
c := c_list.item
if c.field = Current then -- or c.field.formula.has_field (Current) then
-- make a formula class and put parser in it.
Result.extend (c)
end
c_list.forth
end
end
feature -- Transformation
as_widget: CONTROL
-- Each descendent class must create the appropriate control and
-- put the control into `control_list'.
deferred
ensure
result_has_field: Result.field = Current
result_added_to_list: control_list.has (Result)
end
feature {CONTROL} -- Implementation
control_list: LINKED_LIST [CONTROL]
-- Keeps track of all the controls so one control can update
-- others and used to make formulas work.
-- NOTE: This can be a once feature here as these are only valid
-- for the current execution.
-- The creation procedures for CONTROL should add the created
-- widget to the list; `destroy' from CONTROL should remove it.
-- Declared as once function so the list (of EV_WIDGETs) does
-- not get stored. That could get messy.
once
create Result.make
end
schema_imp: FIELD_SCHEMA
-- Implementation and/or anchor for `schema'. Set by `set_schema' and
-- removed by `remove_schema.
-- NOTE: The FIELDs in a SCHEMA will determine the keys to be
-- used in `data_table' and will be used to build the controls
-- for obtaining the values asscociated with the keys.
feature {NONE} -- Implementation (fields used by `field_schema')
Label_field: STRING_FIELD
-- Create a field to store the `label' of a FIELD
once
create Result
-- Result.extend (Default_name, Default_label_field_name)
Result.set_label (Default_label_field_name)
Result.set_x (0)
Result.set_y (0)
Result.set_width (Default_width)
Result.set_height (Default_height)
end
X_field: INTEGER_FIELD
-- Create a field to store the `x' value of a FIELD
once
create Result
-- Result.extend (Default_x_field_name, Default_x_field_name)
Result.set_label (Default_x_field_name)
Result.set_x (0)
Result.set_y (50)
Result.set_width (Default_width)
Result.set_height (Default_height)
end
Y_field: INTEGER_FIELD
-- Create a field to store the `y' value of a FIELD
once
create Result
Result.set_label (Default_y_field_name)
Result.set_x (0)
Result.set_y (100)
Result.set_width (Default_width)
Result.set_height (Default_height)
end
Width_field: INTEGER_FIELD
-- Create a field to store the `width' of a FIELD
once
create Result
Result.set_label (Default_width_field_name)
Result.set_x (0)
Result.set_y (150)
Result.set_width (Default_width)
Result.set_height (Default_height)
end
Height_field: INTEGER_FIELD
-- Create a field to store the `height' of a FIELD
once
create Result
Result.set_label (Default_height_field_name)
Result.set_x (0)
Result.set_y (200)
Result.set_width (Default_width)
Result.set_height (Default_height)
end
feature {NONE} -- Inaplicable
set_schema (a_schema: like schema_imp)
-- Change `schema' indirectly by changing `schema_imp'.
do
check
should_not_be_called: False
-- Because `schema' was redefined to a constant
end
end
remove_schema
-- Make `schema' imp Void
do
check
should_not_be_called: False
-- Because `schema' was redefined to a constant
end
end
end

View File

@ -0,0 +1,32 @@
note
description: "[
Constants for use by classes dealing with class {FIELD} (i.e {FIELD}
and {SCHEMA} and any descendants.
]"
date: "28 Feb 04"
author: "Jimmy J. Johnson"
copyright: "Copyright 2012, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/fields/field_constants.e $"
date: "$Date: 2012-03-16 14:05:07 -0400 (Fri, 16 Mar 2012) $"
revision: "$Revision: 7 $"
class
FIELD_CONSTANTS
feature -- Access
Default_label_field_name: STRING = "label"
Default_x_field_name: STRING = "x"
Default_y_field_name: STRING = "y"
Default_height_field_name: STRING = "height"
Default_width_field_name: STRING = "width"
Default_name: STRING = "name: "
Default_x: INTEGER = 0
Default_y: INTEGER = 0
Default_height: INTEGER = 30
Default_width: INTEGER = 150
end

View File

@ -0,0 +1,33 @@
note
description: "[
A reference to a {FIELD} for use by once feature
`user_identifier_field' from {SCHEMA}
]"
date: "7 Oct 07"
author: "Jimmy J. Johnson"
copyright: "Copyright 2012, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/fields/field_ref.e $"
date: "$Date: 2012-03-16 14:05:07 -0400 (Fri, 16 Mar 2012) $"
revision: "$Revision: 7 $"
class
FIELD_REF
create
set_field
feature -- Access
field: FIELD
-- Item held by current
feature -- Element change
set_field (a_field: FIELD)
-- Change the `field'.
do
field := a_field
end
end

View File

@ -0,0 +1,24 @@
note
description: "[
A {SCHEMA} for a {FIELD}
]"
author: "Jimmy J. Johnson"
copyright: "Copyright 2012, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/fields/field_schema.e $"
date: "$Date: 2012-03-16 14:05:07 -0400 (Fri, 16 Mar 2012) $"
revision: "$Revision: 7 $"
class
FIELD_SCHEMA
inherit
SCHEMA
create
default_create
create {LINKED_LIST}
make
end

View File

@ -0,0 +1,42 @@
note
description: "[
A {FIELD} in which to edit formulas
]"
author: "Jimmy J. Johnson"
copyright: "Copyright 2012, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/fields/formula_field.e $"
date: "$Date: 2012-03-16 14:05:07 -0400 (Fri, 16 Mar 2012) $"
revision: "$Revision: 7 $"
class FORMULA_FIELD
-- creates an edit box.
inherit
STRING_FIELD
redefine
is_valid_data
end
create
default_create
feature -- Access
is_valid_data (a_data: ANY): BOOLEAN
-- Is the value in `a_data' a valid representation
-- for the `Type' of the data.
local
-- scan: SCANNER
-- s: STRING
do
---- create scan
-- s ?= a_data
-- if s /= Void then
---- scan.scan_string (s)
-- end
---- Result := Precursor {STRING_FIELD} (a_data) and then not scan.scanning_error
end
end

View File

@ -0,0 +1,74 @@
note
description: "[
A {FIELD} used to create a {INTEGER_CONTROL} and position that control.
]"
date: "24 Feb 04"
author: "Jimmy J. Johnson"
copyright: "Copyright 2012, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/fields/integer_field.e $"
date: "$Date: 2012-03-16 14:05:07 -0400 (Fri, 16 Mar 2012) $"
revision: "$Revision: 7 $"
class
INTEGER_FIELD
inherit
COMPARABLE_FIELD
redefine
default_create,
is_valid_data,
string_to_type
end
create
default_create
feature {NONE} -- Initialization
default_create
-- Create an instance
do
Precursor {COMPARABLE_FIELD}
end
feature -- Querry
Type: INTEGER_REF
-- Implementation (and anchor) of `value'.
-- Redefined to change type.
once
create Result
end
string_to_type (a_string: STRING_32): like type
-- Convert `a_string' to an object of `Type'.
do
create Result
Result.set_item (a_string.to_integer)
end
is_valid_data (a_value: ANY): BOOLEAN
-- Is the value in the display a valid representation
-- for the type of the data.
do
Result := Precursor {COMPARABLE_FIELD} (a_value)
if not Result then
-- It may be that `a_value' is a STRING representation
-- of an integer, so check the string and convert it.
if attached {STRING} a_value as s then
Result := s.is_integer
end
end
end
feature -- Transformation
as_widget: INTEGER_CONTROL
-- Create the appropriate type of control
do
create Result.make_from_field (Current)
end
end

View File

@ -0,0 +1,444 @@
note
description: "[
A list of {FIELD} where each {FIELD} describes the placement
of a {CONTROL} withing an {EDITOR}
]"
author: "Jimmy J. Johnson"
copyright: "Copyright 2012, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/fields/schema.e $"
date: "$Date: 2012-03-16 14:05:07 -0400 (Fri, 16 Mar 2012) $"
revision: "$Revision: 7 $"
class
SCHEMA
inherit
LINKED_LIST [FIELD]
rename
item as field
redefine
default_create,
make,
copy,
is_equal,
-- Redefine the following in order to set the time the schema was
-- changed so the dialog editor can use it to determine if it needs
-- to redraw the view.
extend,
put_front,
put_left,
put_right,
merge_left,
merge_right,
-- Need to redefine the following in order to preserve the invariant
-- dealing with the keys (key fields must reside in current). If a
-- field is removed from Current it can no longer be used as a key.
-- Other features are defined in terms of this, so these four should
-- take care of all features from LINKED_LIST.
remove,
replace,
remove_right,
wipe_out
select
make
end
LINKED_LIST [FIELD] -- inherited identically as above except for `make'
rename
make as list_make,
item as field
redefine
default_create,
-- make,
copy,
is_equal,
-- Redefine the following in order to set the time the schema was
-- changed so the dialog editor can use it to determine if it needs
-- to redraw the view.
extend,
put_front,
put_left,
put_right,
merge_left,
merge_right,
-- Need to redefine the following in order to preserve the invariant
-- dealing with the keys (key fields must reside in current). If a
-- field is removed from Current it can no longer be used as a key.
-- Other features are defined in terms of this, so these four should
-- take care of all features from LINKED_LIST.
remove,
replace,
remove_right,
wipe_out
end
EDITABLE
redefine
default_create,
copy,
is_equal
end
create
default_create
create {LINKED_LIST}
make
feature {NONE} -- Initialization
default_create
-- Create an instance
-- Redefined because `new_chain' from LINKED_LIST uses `make'.
do
list_make
Precursor {EDITABLE}
create keys_imp.make
create mandatory_fields.make
create time_modified.set_now_utc_fine
extend_mandatory (Name_field)
end
make
-- Called by `new_chain' from LINKED_LIST
do
Precursor {LINKED_LIST}
default_create
end
feature -- Access
identifying_field: FIELD
-- The field used to get a string which will identify an object.
do
Result := identifying_field_ref.field
end
keys: LINKED_SET [STRING]
-- The keys to use in comparison of EDITABLEs using Current.
-- NOTE: Even though FIELDs are used in `keys_imp', ultimately the label
-- of the FIELD will be used to access data in an EDITABLE, hence the result type.
do
create Result.make
from keys_imp.start
until keys_imp.exhausted
loop
Result.extend (keys_imp.item.label)
keys_imp.forth
end
end
key_fields: LINKED_SET [FIELD]
-- The fields which are used as keys
do
create Result.make
from keys_imp.start
until keys_imp.exhausted
loop
Result.extend (keys_imp.item)
keys_imp.forth
end
end
Name_field: STRING_FIELD
-- The FIELD used to access the "name" of the object.
once
create Result
Result.set_label ("Name: ")
end
time_modified: YMDHMS_TIME
-- Time at which a modification was made (such as adding
-- or removing a field).
feature -- Element change
set_identifying_field (a_field: STRING_FIELD)
-- Change the `user_identifying_field'
require
field_exists: a_field /= Void
do
identifying_field_ref.set_field (a_field)
ensure
field_was_assigned: identifying_field = a_field
end
feature -- Basic operations
put_front (a_field: like field)
-- Add `a_field' to beginning.
-- Do not move cursor.
-- Reset `time_modified'.
do
Precursor {LINKED_LIST} (a_field)
time_modified.set_now_utc_fine
end
extend (a_field: like field)
-- Add `a_field' to the end.
-- Do not move cursor.
-- Reset `time_modified'.
do
Precursor {LINKED_LIST} (a_field)
time_modified.set_now_utc_fine
end
extend_mandatory (a_field: like field)
-- Add `a_field' to Current and make it a manditory field.
-- Reset `time_modified'.
require
is_extendible: extendible
do
check
field_exists: a_field /= Void
end
mandatory_fields.extend (a_field)
extend (a_field)
ensure
has_field: has (a_field)
has_as_mandatory: has_mandatory (a_field)
end
put_left (a_field: like field)
-- Add `a_field' to the left of cursor position.
-- Do not move cursor.
-- Reset `time_modified'.
do
Precursor {LINKED_LIST} (a_field)
time_modified.set_now_utc_fine
end
put_right (a_field: like field)
-- Add `a_field' to the left of cursor position.
-- Do not move cursor.
-- Reset `time_modified'.
do
Precursor {LINKED_LIST} (a_field)
time_modified.set_now_utc_fine
end
merge_left (a_other: like Current)
-- Merge `a_other' into current structure before cursor
-- position. Do not move cursor. Empty `other'.
-- Reset `time_modified'.
do
Precursor {LINKED_LIST} (a_other)
time_modified.set_now_utc_fine
end
merge_right (a_other: like Current)
-- Merge `a_other' into current structure after cursor
-- position. Do not move cursor. Empty `other'.
-- Reset `time_modified'.
do
Precursor {LINKED_LIST} (a_other)
time_modified.set_now_utc_fine
end
remove
-- Remove current item.
-- Move cursor to right neighbor
-- (or `after' if no right neighbor).
-- Reset `time_modified'.
-- Also, redefined to preserve invariant.
do
if attached {COMPARABLE_FIELD} field as cf then
keys_imp.prune (cf)
else
-- Do not have to worry about it, because if `v' is not
-- a COMPARABLE_FIELD it would never be in `keys' anyway.
end
Precursor {LINKED_LIST}
time_modified.set_now_utc_fine
end
replace (v: like field)
-- Replace current item by `v'.
-- Reset `time_modified'.
-- Also, redefined to preserve invariant.
do
if attached {COMPARABLE_FIELD} v as cf then
keys_imp.prune (cf)
else
-- Do not have to worry about it, because if `v' is not
-- a COMPARABLE_FIELD it would never be in `keys' anyway.
end
Precursor {LINKED_LIST} (v)
time_modified.set_now_utc_fine
end
remove_right
-- Remove item to the right of cursor position.
-- Do not move cursor.
-- Reset `time_modified'.
-- Also, redefined to preserve invariant.
do
if attached {COMPARABLE_FIELD} i_th (index + 1) as cf then
keys_imp.prune (cf)
else
-- Do not have to worry about it, because if `v' is not
-- a COMPARABLE_FIELD it would never be in `keys' anyway.
end
Precursor {LINKED_LIST}
time_modified.set_now_utc_fine
end
wipe_out
-- Remove all items.
-- Reset `time_modified'.
-- Also, redefined to preserve invariant.
do
keys_imp.wipe_out
Precursor {LINKED_LIST}
time_modified.set_now_utc_fine
end
add_key_field (a_field: COMPARABLE_FIELD)
-- Add `a_field' to use in comparisons
require
field_exists: a_field /= Void
has_field: has (a_field)
do
keys_imp.extend (a_field)
ensure
has_key: keys_imp.has (a_field)
end
prune_key_field (a_field: COMPARABLE_FIELD)
-- Remove `a_field' so it no longer is used in comparisons
require
field_exists: a_field /= Void
do
keys_imp.prune (a_field)
ensure
removed: not keys_imp.has (a_field)
end
promote_key_field (a_field: COMPARABLE_FIELD)
-- Move `a_field' toward the beginning of `keys' by one, so it
-- will be a "more important" key.
require
field_exists: a_field /= Void
has_as_key: key_fields.has (a_field)
local
i: INTEGER
do
if keys_imp.count > 1 then
i := keys_imp.index_of (a_field, 1)
if i > 1 then
go_i_th (i - 1)
swap (i)
end
end
ensure
field_was_promoted:
end
demote_key_field (a_field: COMPARABLE_FIELD)
-- Move `a_field' toward the end of `keys' by one, so it
-- will be a "less important" key.
require
field_exists: a_field /= Void
has_as_key: key_fields.has (a_field)
local
i: INTEGER
do
if keys_imp.count > 1 then
i := keys_imp.index_of (a_field, 1)
if i < count then
go_i_th (i + 1)
swap (i)
end
end
ensure
field_was_demoted:
end
set_key_primary (a_field: COMPARABLE_FIELD)
-- Move `a_field' toward the end of `keys' by one, so it
-- will be a "less important" key.
require
field_exists: a_field /= Void
has_as_key: key_fields.has (a_field)
local
i: INTEGER
do
if keys_imp.count > 1 then
i := keys_imp.index_of (a_field, 1)
if i /= 1 then
go_i_th (1)
swap (i)
end
end
ensure
field_is_primary: key_fields.index_of (a_field, 1) = 1
end
feature -- Querry
has_mandatory (a_field: like field): BOOLEAN
-- Is `a_field' required to always be in this schema?
-- (I.e. can it never be deleted?)
require
field_exists: a_field /= Void
do
Result := mandatory_fields.has (a_field)
ensure
definition: Result = mandatory_fields.has (a_field)
end
feature -- Duplication
copy (other: like Current)
-- Update current object using fields of object attached
-- to `other', so as to yield equal objects.
-- Redefined to merge the copy operations from both ancestors.
-- NOTE: Feature `infix "<"' from VIEWABLE only checks the `id'
-- and assumes if the `id' (and hence the `time_stamp' from both
-- objects are equal the object must have been copied and is
-- therefore equal.
do
Precursor {LINKED_LIST} (other)
Precursor {EDITABLE} (other)
end
feature -- Comparison
is_equal (other: like Current): BOOLEAN
-- Is Current equal to `other'?
do
-- Precursor {VIEWABLE} uses feature `infix "<"' to do the
-- comparison, and there is no less than feature in LINKED_LIST,
-- therefore this feature makes the BIG assumption that if
-- the `id' and `time_stamp' (from VIEWABLE) of both objects
-- are the same then it must have been a copy. There is no other
-- way to make the `time_stamps' equal.
Result := Precursor {EDITABLE} (other)
end
feature {NONE} -- Implementation
keys_imp: LINKED_SET [COMPARABLE_FIELD]
-- Set of fields whose associated values can be used to compare
-- one EDITABLE to another in feature `infix "<"' from EDITABLE.
-- The order implies the more significant fields.
mandatory_fields: LINKED_SET [FIELD]
-- Set of fields which can not be deleted from Current.
identifying_field_ref: FIELD_REF
-- The field to be used as `identifying_field' as set by the user
-- in place of the default field.
once
create Result.set_field (Name_field)
end
invariant
keys_imp_exists: keys_imp /= Void
manditory_fields_exists: mandatory_fields /= Void
keys_reside_in_current: key_fields.for_all (agent has)
mandatory_fields_reside_in_current: mandatory_fields.for_all (agent has)
end

View File

@ -0,0 +1,48 @@
note
description: "[
A {FIELD} describing the placement of a {STRING_CONTROL}
]"
author: "Jimmy J. Johnson"
copyright: "Copyright 2012, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/fields/string_field.e $"
date: "$Date: 2012-03-16 14:05:07 -0400 (Fri, 16 Mar 2012) $"
revision: "$Revision: 7 $"
class STRING_FIELD
-- creates an edit box.
inherit
COMPARABLE_FIELD
create
default_create
feature {NONE} -- Initialization
feature -- Access
feature -- Querry
type: STRING_32
-- Implementation (and anchor) of `value'.
-- Redefined to change type.
once
create Result.make_from_string ("")
end
as_type (a_string: STRING_32): like type
-- Convert `a_string' to an object of `Type'.
do
Result := a_string
end
feature -- Transformation
as_widget: STRING_CONTROL
do
create Result.make_from_field (Current)
end
end

View File

@ -0,0 +1,82 @@
note
description: "[
A {FIELD} decribing the placement of a {YMD_TIME_CONTROL}
]"
author: "Jimmy J. Johnson"
copyright: "Copyright 2012, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/fields/ymd_time_field.e $"
date: "$Date: 2012-03-16 14:05:07 -0400 (Fri, 16 Mar 2012) $"
revision: "$Revision: 7 $"
class
YMD_TIME_FIELD
inherit
COMPARABLE_FIELD
redefine
is_valid_data,
string_to_type,
type_to_string
end
create
default_create
feature -- Access
Type: YMD_TIME
-- Implementation (and anchor) of `value'.
-- Redefined to change type.
once
create Result.set_now
end
is_valid_data (a_value: ANY): BOOLEAN
-- Is the value in `a_value' a valid representation
-- for the `Type' of the data.
local
f: YMD_TIME_FORMATTER
do
Result := Precursor {COMPARABLE_FIELD} (a_value)
if not Result then
-- It may be that `a_value' is a STRING representation
-- of a date, so check the string and convert it.
create f
if attached {STRING} a_value as s then
Result := f.is_valid (s)
end
end
end
string_to_type (a_string: STRING_32): like Type
-- Convert `a_string' to a YMD_TIME
local
f: YMD_TIME_FORMATTER
do
create f
Result := f.to_ymd_time (a_string)
end
type_to_string (a_value: ANY): STRING_32
-- The string representation of `a_value'.
local
f: YMD_TIME_FORMATTER
do
if attached {YMD_TIME} a_value as t then
create f
Result := f.to_string (t)
else
Result := Precursor {COMPARABLE_FIELD} (a_value)
end
end
feature -- Transformation
as_widget: YMD_TIME_CONTROL
do
create Result.make_from_field (Current)
end
end

View File

@ -0,0 +1,148 @@
note
description : "About dialog box"
author : "Generated by the New Vision2 Application Wizard."
date : "$Date: 2012-03-16 14:05:07 -0400 (Fri, 16 Mar 2012) $"
revision : "1.0.0"
class
ABOUT_DIALOG
inherit
-- EV_DIALOG
EV_TITLED_WINDOW
-- Used EV_TITLED_WINDOW so the dialog can be declared as
-- "once" and non-modal. The close actions for DIALOGs
-- were too restrictive or not exported.
redefine
create_interface_objects,
initialize
end
create
default_create
feature {NONE} -- Initialization
create_interface_objects
-- Create objects to be used by `Current' in `initialize'
-- Implemented by descendants to create attached objects
-- in order to adhere to void-safety due to the implementation bridge pattern.
do
Precursor {EV_TITLED_WINDOW}
create pixmap
create message_label
create ok_button.make_with_text ("OK")
end
initialize
-- Populate the dialog box.
local
main_horizontal_box: EV_HORIZONTAL_BOX
left_vertical_box: EV_VERTICAL_BOX
right_vertical_box: EV_VERTICAL_BOX
horizontal_separator: EV_HORIZONTAL_SEPARATOR
buttons_box: EV_HORIZONTAL_BOX
ev_cell: EV_CELL
do
Precursor
--| Add the pixmap to the dialog box.
--|
--| We do not use `{EV_STOCK_PIXMAPS}.Information_pixmap'
--| directly because a given pixmap can only have one
--| parent. `Information_pixmap' may have alredy been put
--| into another container.
pixmap.copy ((create {EV_STOCK_PIXMAPS}).Information_pixmap)
pixmap.set_minimum_size (pixmap.width, pixmap.height)
create message_label
message_label.align_text_left
create horizontal_separator
ok_button.set_minimum_size (75, 24)
ok_button.select_actions.extend (agent destroy)
create buttons_box
buttons_box.extend (create {EV_CELL}) -- Fill in empty space on left
buttons_box.extend (ok_button)
buttons_box.disable_item_expand (ok_button)
create left_vertical_box
left_vertical_box.set_border_width (7)
left_vertical_box.extend (pixmap)
left_vertical_box.disable_item_expand (pixmap)
left_vertical_box.extend (create {EV_CELL})
create right_vertical_box
right_vertical_box.set_padding (7)
right_vertical_box.extend (message_label)
right_vertical_box.extend (horizontal_separator)
right_vertical_box.disable_item_expand (horizontal_separator)
right_vertical_box.extend (buttons_box)
right_vertical_box.disable_item_expand (buttons_box)
create main_horizontal_box
main_horizontal_box.set_border_width (7)
create ev_cell
ev_cell.set_minimum_width (21)
main_horizontal_box.extend (ev_cell)
main_horizontal_box.disable_item_expand (ev_cell)
main_horizontal_box.extend (left_vertical_box)
main_horizontal_box.disable_item_expand (left_vertical_box)
create ev_cell
ev_cell.set_minimum_width (28)
main_horizontal_box.extend (ev_cell)
main_horizontal_box.disable_item_expand (ev_cell)
main_horizontal_box.extend (right_vertical_box)
extend (main_horizontal_box)
-- set_default_push_button (ok_button)
-- set_default_cancel_button (ok_button)
set_title (Default_title)
set_message (Default_message)
set_size (400, 150)
end
feature -- Access
message: STRING
-- Message displayed in the dialog box.
do
Result := message_label.text
end
feature -- Element change
set_message (a_message: STRING)
do
message_label.set_text (a_message)
end
feature {NONE} -- Implementation
message_label: EV_LABEL
-- Label situated on the top of the dialog,
-- contains the message.
pixmap: EV_PIXMAP
-- Pixmap display on the left of the dialog.
ok_button: EV_BUTTON
-- "OK" button.
feature {NONE} -- Implementation / Constants
Default_title: STRING = "Standard Interface Cluster"
-- Default title for the dialog window.
Default_message: STRING =
"%N%N%
%Written by%N%N%
%Johnson J. Johnson%N%N%N%
%with ISE Eiffel 6.68 (free version) with Eiffel Vision."
end

View File

@ -0,0 +1,283 @@
note
description: "[
Used with EDITOR classes.
Object which can be edited in a dialog box, an {EDITOR} using
a format stored in a `schema'.
]"
date: "7 Mar 03"
author: "Jimmy J. Johnson"
copyright: "Copyright 2012, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/system/editable.e $"
date: "$Date: 2012-03-16 14:05:07 -0400 (Fri, 16 Mar 2012) $"
revision: "$Revision: 7 $"
class
EDITABLE
inherit
TIME_STAMPABLE
redefine
default_create
-- infix "<"
end
create
default_create
feature {NONE} -- Initialization
default_create
do
Precursor {TIME_STAMPABLE}
create data_table.make (5)
schema_imp := Default_schema
end
feature -- Access
value (a_key: STRING): detachable ANY
-- The value associated with `key' or Void if none.
require
key_exists: a_key /= Void
do
Result := data_table.item (a_key)
end
schema: SCHEMA
-- Used to construct a dialog in which to edit the values
-- which are then stored in `data_table'.
require
schema_available: is_schema_available
do
check attached schema_imp as s then
Result := s
end
ensure
result_exists: Result /= Void
end
display_name: STRING_32
-- Used as an "out" value for display in TOOLs and other widgets.
do
if attached {STRING_32} value (schema.identifying_field.label) as s then
Result := s
else
Result := Current.id
end
end
feature -- Element change
set_target_label_field (a_field: STRING_FIELD)
-- Change the field used to display an identifier in the tools, etc.
-- This is really in the `schema' of the editable.
require
field_exists: a_field /= Void
local
w: JJ_MAIN_WINDOW
do
schema.set_identifying_field (a_field)
-- Because `target_label_field' is posibly used by all views, when it changes
-- all views must be updated because there is no way for the view to know
-- if it contains `target_label_field'. Originally `target_label_field'
-- was added to the views using `add_object' (see VIEW), but using a FIELD
-- implies some EDITABLEs in the system. I wanted the "Standard Interface"
-- cluster to stand alone and not need the "Dynamic Editor" cluster to which
-- this class belongs.
check attached {JJ_APPLICATION} (create {EV_ENVIRONMENT}).application as a then
-- because only JJ_APPLICATIONS should use this. really ???
-- Get hold of any VIEW; `first_window' will work.
w := a.first_window
w.draw_all_views
end
end
set_schema (a_schema: like schema)
-- Change `schema' indirectly by changing `schema_imp'.
require
schema_exists: a_schema /= Void
do
schema_imp := a_schema
ensure
schema_was_set: schema = a_schema
end
remove_schema
-- Make `schema_imp' Void
do
schema_imp := Void
ensure
schema_imp_void: schema = Void
end
extend_value (a_value: ANY; a_key: STRING)
-- Add `a_value' to the `data_table' and associate it with `a_key'
-- and accessable through feature `value'.
-- NOTE: `a_value' can be Void.
require
key_exists: a_key /= Void
value_exists: a_value /= Void -- temp
do
data_table.force (a_value, a_key)
ensure
has_value: a_value /= Void implies data_table.has_item (a_value)
has_key: data_table.has (a_key)
end
remove_value (a_key: STRING)
-- Remove the value associated with `a_key' and `a_key'.
require
key_exists: a_key /= Void
do
data_table.remove (a_key)
ensure
not_has_value: not data_table.has (a_key)
not_has_key: not data_table.has (a_key)
end
-- extend_with_field (a_value: ANY; a_field: FIELD) is
-- -- Change the value of the data as index using the `name' from `a_field'.
-- -- NOTE: `a_value' can be Void.
-- require
-- field_exists: a_field /= Void
-- schema_has_field: schema.has (a_field)
-- do
-- extend (a_value, a_field.label)
-- ensure
-- has_value: a_value /= Void implies data_table.has_item (a_value)
-- has_key: data_table.has (a_field.label)
-- end
-- change (a_control: VALUE_KEY_PAIR) is
-- -- Change the `value' in Current to the value stored in `a_control'
-- -- NOTE: `a_control' contains a `key' / `value' pair.
-- do
-- data_table.force (a_control.value, a_control.key)
-- end
remove_unreachable_data
-- Remove any data from this EDITABLE that cannot be
-- accessed using the keys in `a_key_set' or the
-- `keys' in `template'.
do
end
feature -- Status report
is_schema_available: BOOLEAN
-- Does Current have a schema?
do
Result := schema_imp /= Void
end
feature -- Query
has_schema (a_schema: SCHEMA): BOOLEAN
-- Does `schema' equal `a_schema'?
require
schema_exists: a_schema /= Void
do
Result := schema = a_schema
end
has_value (a_key: STRING): BOOLEAN
-- Is there a value associated with `a_key'?
require
key_exists: a_key /= Void
do
data_table.search (a_key)
Result := data_table.found
end
feature -- Comparison
is_less alias "<" (a_other: like Current): BOOLEAN
-- Is Current less than `a_other'?
-- This uses the `keys' from `schema' first and then the `id'.
do
if not (Current = a_other) then
if schema = Void and a_other.schema = Void then
Result := Current < a_other
elseif schema /= Void and a_other.schema = Void then
Result := True
elseif schema = Void and a_other.schema /= Void then
Result := False
elseif schema /= Void and a_other.schema /= Void then
Result := compare_key_values (a_other)
end
end
ensure then
zero_schemas: (schema = Void and a_other.schema = Void) implies Result = (Current < a_other)
one_schema_current: (schema /= Void and a_other.schema = Void) implies Result
one_schema_other: (schema = Void and a_other.schema /= Void) implies not Result
same_schema_both: (schema /= Void and a_other.schema /= Void) implies Result = compare_key_values (a_other)
end
feature {NONE} -- Implementation
compare_key_values (a_other: like Current): BOOLEAN
-- Is Current less than `a_other' when comparing keys?
-- Feature to decompose `infix "<"'.
require
other_exists: a_other /= Void
schema_exists: schema /= Void
other_schema_exists: a_other.schema /= Void
local
keys: LINKED_SET [STRING]
k: STRING
done: BOOLEAN
do
keys := schema.keys
if schema /= a_other.schema then
keys.intersect (a_other.schema.keys)
end
from keys.start
until done or else keys.exhausted
loop
k := keys.item
-- Now compare the values. If both are Void (can happen) or reference
-- the same object (unlikely or imposible) then just continue to
-- the next key. If they are not equal then do comparison.
if attached {COMPARABLE} value (k) as c and
attached {COMPARABLE} a_other.value (k) as other_c then
Result := c < other_c
done := True
end
keys.forth
end
-- At this point we have either made a determination using the
-- values at the keys, in which case `done' will be true, or we
-- have exhausted the keys without making a determination. In
-- the second case compare the `id' features; this should be
-- true if Current was created before `a_other'. (Feature `id'
-- incorporates a `time_stamp'.)
if not done then
Result := Current.id < a_other.id
end
end
feature {NONE}-- Implementation
schema_imp: detachable like schema
-- Implementation of `schema'. Set by `set_schema' and
-- removed by `remove_schema.
-- NOTE: The FIELDs in a SCHEMA will determine the keys to be
-- used in `data_table' and will be used to build the controls
-- for obtaining the values asscociated with the keys.
data_table: HASH_TABLE [ANY, STRING]
-- The actual data is stored here.
Default_schema: SCHEMA
-- Schema available to all EDITABLEs
once
create Result
end
invariant
-- data_table_exists: data_table /= Void
end

View File

@ -0,0 +1,223 @@
note
description: "[
Root class for an application built using the "jj_vision" classes
]"
date: "19 Jul 03"
author: "Jimmy J. Johnson"
copyright: "Copyright 2012, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
date: "$Date: 2015-10-24 07:32:40 -0700 (Sat, 24 Oct 2015) $"
revision: "$Revision: 23 $"
class
JJ_APPLICATION
inherit
SHARED
export
{NONE}
all
-- {ANY}
-- persistence_manager
undefine
default_create,
copy
end
EV_APPLICATION
redefine
create_interface_objects,
destroy
end
create
make_and_launch
feature {NONE} -- Initialization
make_and_launch
-- Initialize and launch application
local
-- l_app: EV_APPLICATION
do
-- -- The use of `l_app' instead of inheritance is the style
-- -- used by the wizard in version 23.09.
-- create l_app
-- prepare
-- -- The next instruction launches GUI message processing.
-- -- It should be the last instruction of a creation procedure
-- -- that initializes GUI objects. Any other processing should
-- -- be done either by agents associated with GUI elements
-- -- or in a separate processor.
-- l_app.launch
-- -- No code should appear here,
-- -- otherwise GUI message processing will be stuck in SCOOP mode.
print ("JJ_APPLICATION.make_and_launch %N")
default_create
prepare
launch
print ("%T end JJ_APPLICATION.make_and_launch %N")
end
create_interface_objects
-- Set up the attribute
do
Precursor {EV_APPLICATION}
create target
end
prepare
-- Prepare the application by either loading it from a previous
-- execution or create a new one if an old one doesn't exist.
local
w: like first_window
do
print ("JJ_APPLICATION.prepare %N")
-- initialize_directories
-- rebuild_application
if not is_application_loaded then
print (" JJ_APPLICATION.prepare begin if statement %N")
create w.make (target)
print (" JJ_APPLICATION.prepare after create w %N")
w.show
print (" JJ_APPLICATION.prepare after w.show %N")
end
print ("%T end JJ_APPLICATION.prepare %N")
end
destroy
-- Save the state of all main_windows and end the application.
do
-- save_system_state
Precursor {EV_APPLICATION}
end
initialize_directories
-- Set up the datastores for the system info.
local
d: DIRECTORY
do
create d.make (Default_data_path.name)
if not d.exists then
d.create_dir
end
create d.make (Default_settings_path.name)
if not d.exists then
d.create_dir
end
end
feature -- Access
target: ANY
-- The top/main object handled by this application
frozen first_window: like window_anchor
-- Anchor to describe the type of the windows in the program.
require
has_at_least_one_window: has_windows
do
check attached {like window_anchor} main_windows.first as w then
Result := w
end
ensure
result_exists: Result /= Void
end
-- command_manager: COMMAND_MANAGER is
-- -- Manages the COMMAND's called by the application to allow undo/redo capabilities.
-- once
-- create Result
-- end
application_state: APPLICATION_STATE
-- The state of the application.
do
create Result
end
feature -- Status report
has_windows: BOOLEAN
-- Does at least one window exist in the application?
do
Result := not main_windows.is_empty
end
feature -- Basic operations
rebuild_application
-- Rebuild the windows as they were on the last application exit.
local
f: RAW_FILE
a: ANY
do
-- Attempt to read the `application_state' from the disk in order
-- to begin this execution where the last one left off.
create f.make (merged_file_name (Default_settings_path.name.as_string_8, "Application_State"))
if f.exists and then f.is_readable then
f.open_read
if f.is_readable then
if attached {like application_state} f.retrieved as app_state then
-- Force a call to `widget' causing the creation of new windows.
a := app_state.view
is_application_loaded := True
end
end
end
end
save_system_state
-- Save the state of the system for restoration on next execution.
local
dn: STRING_32
fn: STRING
d: DIRECTORY
f: RAW_FILE
do
dn := Default_settings_path.name
create d.make (dn)
if not d.exists then
d.recursive_create_dir
end
fn := merged_file_name (Default_settings_path.name.as_string_8, "Application_State")
-- fn := "Application_state"
create f.make (fn)
if f.exists then
f.wipe_out
-- else
-- f.create_read_write
end
f.create_read_write
f.general_store (application_state)
f.close
end
feature {NONE} -- Implementation
is_application_loaded: BOOLEAN
-- Was the last application state retrieved from a persistent file and
-- now ready to be used to initialize the application?
-- Set by `load_application_state'.
Default_application_state_name: STRING = "Application State"
-- To be used as file name of file containing the `state'.
feature {NONE} -- Implementation (anchors)
window_anchor: JJ_MAIN_WINDOW
-- Anchor for the type of `first_window'
-- Not to be called; just used to anchor types.
-- Declared as a feature to avoid adding an attribute.
require else
not_callable: False
do
check
do_not_call: False then
-- Because give no info; simply used as anchor.
end
end
end

View File

@ -0,0 +1,918 @@
note
description: "[
This can be used as base class for the main window(s) of a program,
allowing the program to have multiple main windows, with a standard
set of buttons and actions such as undo/redo, open, save, etc.
To enable undo/redo create a descendant of {JJ_COMMAND} and add it to the
`command_mangaer' with `add_command'.
]"
date: "18 Jul 03"
author: "Jimmy J. Johnson"
copyright: "Copyright 2015, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/system/jj_main_window.e $"
date: "$Date: 2015-10-24 07:32:40 -0700 (Sat, 24 Oct 2015) $"
revision: "$Revision: 23 $"
class
JJ_MAIN_WINDOW
inherit
VIEW
undefine
-- default_create,
copy
redefine
create_interface_objects,
initialize,
draw,
state,
-- set_split_manager,
add_actions
end
EV_TITLED_WINDOW
rename
object_id as ise_object_id,
item as ev_item,
is_empty as ev_is_empty
undefine
is_in_default_state
redefine
create_interface_objects,
initialize
end
PIXEL_BUFFERS
undefine
default_create,
copy
end
create
make
feature {NONE} -- Initialization
create_interface_objects
-- Create objects to be used by `Current' in `initialize'
-- Implemented by descendants to create attached objects
-- in order to adhere to void-safety due to the implementation bridge pattern.
do
create split_manager
-- Create the "File" menu
create file_menu
create file_new_target_item
create file_save_item
create file_open_item
create file_exit_item
-- Create the "Edit" menu
create edit_menu
create edit_undo_item
create edit_redo_item
-- Create the "Tools" menu
create tool_menu
create tool_preferences_item
-- Create the "Window" menu
create window_menu
create window_new_item
create window_maximize_all_item
create window_minimize_all_item
create window_raise_all_item
-- Create the "Help" menu
create help_menu
create help_about_item
-- Create the `jj_menu_bar'
create jj_menu_bar
-- Create the main_window box and tool bar
create jj_tool_bar
create jj_tool_bar_box
create jj_tool_bar
create new_target_button
create open_button
create save_button
create undo_button
create redo_button
create new_window_button
create minimize_all_button
create raise_all_button
create help_button
-- -- Create the status bar.
-- create jj_status_bar
-- create jj_status_label
-- Create the dialogs
create preferences_dialog
Precursor {VIEW}
Precursor {EV_TITLED_WINDOW}
end
initialize
-- Build the interface for this window.
-- local
-- sys: like system
do
-- create split_manager
Precursor {EV_TITLED_WINDOW}
Precursor {VIEW}
main_windows.extend (Current)
-- Create and add the menu bar.
build_standard_menu_bar
show_menu
-- Create and add the toolbar.
build_main_window_tool_bar
-- upper_bar.extend (create {EV_HORIZONTAL_SEPARATOR})
upper_bar.extend (jj_tool_bar_box)
upper_bar.disable_item_expand (jj_tool_bar_box)
upper_bar.extend (create {EV_HORIZONTAL_SEPARATOR})
-- Create and add the status bar.
-- build_standard_status_bar
-- lower_bar.extend (jj_status_bar)
-- Set up window attributes
-- set_system (sys) -- commented out for dynamic editor
-- set_target (system)
set_size (Window_width, Window_height)
-- set_actions
-- set_widget_states
set_preferences_dialog (Default_preferences_dialog)
-- Set up the "split-managed" cell, bar, and menu.
extend (split_manager.cell)
jj_tool_bar_box.extend (split_manager.bar)
window_menu.extend (split_manager.menu)
-- Finish the window
set_title (Window_title)
-- draw
end
add_actions
-- Add actions to the widgets
do
-- add actions to window
close_request_actions.extend (agent on_close_window)
-- add actions to File menu items
-- file_new_target_item.select_actions.extend (agent on_make_new_target)
file_open_item.select_actions.extend (agent on_file_open)
file_save_item.select_actions.extend (agent on_file_save)
file_exit_item.select_actions.extend (agent on_exit)
-- add actions to the Tool menu items
tool_preferences_item.select_actions.extend (agent on_show_preferences_dialog)
-- add actions to Window menu items
-- window_new_item.select_actions.extend (agent on_make_new_window)
window_maximize_all_item.select_actions.extend (agent on_maximize_all)
window_minimize_all_item.select_actions.extend (agent on_minimize_all)
window_raise_all_item.select_actions.extend (agent on_raise_all)
-- window_preferences_item.select_actions.extend (agent on_show_preferences_window)
-- add actions to Help menu items
help_about_item.select_actions.extend (agent on_about)
-- add actions to buttons
new_target_button.set_pebble_function (agent on_get_target)
new_target_button.select_actions.extend (agent on_make_new_target)
new_target_button.drop_actions.extend (agent on_drop_target)
-- open_button.select_actions.extend (agent on_file_open)
-- save_button.select_actions.extend (agent on_file_save)
undo_button.select_actions.extend (agent command_manager.undo)
redo_button.select_actions.extend (agent command_manager.execute)
new_window_button.drop_actions.extend (agent on_drop_in_new_window)
-- new_window_button.select_actions.extend (agent on_make_new_window)
minimize_all_button.select_actions.extend (agent on_minimize_all)
raise_all_button.select_actions.extend (agent on_raise_all)
-- preferences_button.select_actions.extend (agent on_show_preferences_window)
end
build_standard_menu_bar
-- Create and populate `jj_menu_bar'.
do
-- Add attributes to menu items
file_menu.set_text ("File")
file_new_target_item.set_text ("New target")
file_save_item.set_text ("Save")
file_open_item.set_text ("Open")
file_exit_item.set_text ("Exit")
edit_menu.set_text ("Edit")
edit_undo_item.set_text ("Undo")
edit_redo_item.set_text ("Redo")
tool_menu.set_text ("Tool")
tool_preferences_item.set_text ("Preferences")
window_menu.set_text ("Window")
window_new_item.set_text ("New")
window_maximize_all_item.set_text ("Maximize all")
window_minimize_all_item.set_text ("Minimize all")
window_raise_all_item.set_text ("Raise all")
help_menu.set_text ("Help")
help_about_item.set_text ("About")
-- Register and fill the "File" menu
file_menu.extend (file_new_target_item)
file_menu.extend (file_open_item)
file_menu.extend (file_save_item)
file_menu.extend (create {EV_MENU_SEPARATOR})
file_menu.extend (file_exit_item)
-- Register and fill the "Edit" menu
edit_menu.extend (edit_undo_item)
edit_menu.extend (edit_redo_item)
-- Register and fill the "Tools" menu
tool_menu.extend (tool_preferences_item)
-- Register and fill the "Window" menu
window_menu.extend (window_new_item)
window_menu.extend (window_maximize_all_item)
window_menu.extend (window_minimize_all_item)
window_menu.extend (window_raise_all_item)
-- Register and fill the "Help" menu
help_menu.extend (help_about_item)
-- Fill the `jj_menu_bar'
jj_menu_bar.extend (file_menu)
jj_menu_bar.extend (edit_menu)
jj_menu_bar.extend (tool_menu)
jj_menu_bar.extend (window_menu)
jj_menu_bar.extend (help_menu)
ensure
menu_bar_created:
jj_menu_bar /= Void and then
not jj_menu_bar.is_empty
end
build_main_window_tool_bar
-- Create and populate the standard toolbar.
local
lab: EV_LABEL
do
-- Add attributes to buttons
new_target_button.set_pixmap (create {EV_PIXMAP}.make_with_pixel_buffer (Icon_object_symbol_buffer))
new_target_button.set_tooltip ("New target")
open_button.set_pixmap (create {EV_PIXMAP}.make_with_pixel_buffer (Icon_open_file_color_buffer))
open_button.set_tooltip ("Open")
save_button.set_pixmap (create {EV_PIXMAP}.make_with_pixel_buffer (Icon_save_color_buffer))
save_button.set_tooltip ("Save")
undo_button.set_pixmap (create {EV_PIXMAP}.make_with_pixel_buffer (Icon_undo_color_buffer))
undo_button.set_tooltip ("Undo")
redo_button.set_pixmap (create {EV_PIXMAP}.make_with_pixel_buffer (Icon_redo_color_buffer))
redo_button.set_tooltip ("Redo")
new_window_button.set_pixmap (create {EV_PIXMAP}.make_with_pixel_buffer (Icon_new_development_tool_color_buffer))
new_window_button.set_tooltip ("New window")
minimize_all_button.set_pixmap (create {EV_PIXMAP}.make_with_pixel_buffer (Icon_minimize_all_color_buffer))
minimize_all_button.set_tooltip ("Minimize all")
raise_all_button.set_pixmap (create {EV_PIXMAP}.make_with_pixel_buffer (Icon_restore_all_color_buffer))
raise_all_button.set_tooltip ("Raise all")
help_button.set_pixmap (create {EV_PIXMAP}.make_with_pixel_buffer (Icon_help_tool_color_buffer))
help_button.set_tooltip ("Help")
-- Add the buttons to the toolbar
jj_tool_bar.extend (new_target_button)
jj_tool_bar.extend (open_button)
jj_tool_bar.extend (save_button)
jj_tool_bar.extend (create {EV_TOOL_BAR_SEPARATOR})
jj_tool_bar.extend (undo_button)
jj_tool_bar.extend (redo_button)
jj_tool_bar.extend (create {EV_TOOL_BAR_SEPARATOR})
jj_tool_bar.extend (new_window_button)
jj_tool_bar.extend (minimize_all_button)
jj_tool_bar.extend (raise_all_button)
jj_tool_bar.extend (create {EV_TOOL_BAR_SEPARATOR})
jj_tool_bar.extend (help_button)
jj_tool_bar.extend (create {EV_TOOL_BAR_SEPARATOR})
-- Add the tool bar to the box
jj_tool_bar_box.extend (jj_tool_bar)
jj_tool_bar_box.disable_item_expand (jj_tool_bar)
-- Add some space after the `help_button'
create lab.make_with_text (" ")
jj_tool_bar_box.extend (lab)
jj_tool_bar_box.disable_item_expand (lab)
ensure
toolbar_created: jj_tool_bar /= Void and then not jj_tool_bar.is_empty
end
-- build_standard_status_bar
-- -- Create and populate the status bar at bottom of window.
-- do
-- jj_status_bar.set_border_width (2)
-- jj_status_label.align_text_left
-- jj_status_bar.extend (jj_status_label)
-- ensure
-- status_bar_created:
-- jj_status_bar /= Void and then
-- jj_status_label /= Void
-- end
feature -- Access
state: MAIN_WINDOW_STATE
-- Used to `persist' the state of the widget.
-- Redefined as attribute so it gets stored with the object.
-- Call `make_state' to create a new state from Current.
do
create Result.make (Current)
end
feature -- Status report
is_cancelled: BOOLEAN_REF
-- Was an action (in a dialog) cancelled?
-- A once function so any JJ_MAIN_WINDOW can recognize it.
once
create Result
end
feature -- Status setting
cancel
-- A cancel button in one of the dialogs was pressed.
-- Sets `is_cancelled' to True.
-- Should be reset to False after it is checked.
do
is_cancelled.set_item (True)
end
uncancel
-- Resets is_cancelled to False
do
is_cancelled.set_item (False)
end
feature -- Element change
-- restore_with_state (a_state: MAIN_WINDOW_STATE) is
-- -- Set up window parameters as read from a file with name `a_file_name'.
-- -- `A_file_name' should include the full path and name of the file.
-- require
-- state_exists: a_state /= Void
-- local
-- t: like target
-- do
-- t ?= a_state.target
-- if t /= Void then
-- set_target (t)
-- end
-- set_position (a_state.x, a_state.y)
-- if a_state.is_maximized then
-- maximize
-- elseif a_state.is_minimized then
-- minimize
-- else
-- restore
-- end
-- set_size (a_state.width, a_state.height)
-- split_manager.restore_with_state (a_state.split_manager_state)
-- end
show_menu
-- Show the menu bar
do
set_menu_bar (jj_menu_bar)
end
hide_menu
-- Hide the menu bar
do
remove_menu_bar
end
show_button_text
-- Show text on all the buttons
do
-- view_manager.show_button_text
-- interface_table.show_button_text
end
hide_button_text
-- Show text on all the buttons
do
-- view_manager.hide_button_text
-- interface_table.hide_button_text
end
set_preferences_dialog (a_window: EV_TITLED_WINDOW)
-- Make `a_window' available to Current so `a_window' can be shown
-- when the `preferences_button' or `preferences_item' is selected.
require
window_exists: a_window /= Void
do
preferences_dialog := a_window
ensure
window_registered: preferences_dialog = a_window
end
-- set_status_text (a_text: STRING_8)
-- -- Change the text in the status bar.
-- do
-- jj_status_label.set_text (a_text)
-- end
feature -- Basic operations
draw
-- Update the whole window.
local
s: STRING
do
-- This simply puts the `display_name' (from EDITABLE) or `generating_type' of
-- the `target' into the title bar of the window.
s := application.generating_type + ": "
if not is_view_empty then
if attached {EDITABLE} target as e then
s := s + e.display_name.to_string_8
else
s := s + target.generating_type.name
end
else
s := s + "Empty"
end
set_title (s)
set_widget_states
end
frozen ask_to_save
-- Show the `ask_to_save_dialog'
do
-- check attached {JJ_APPLICATION} (create {EV_ENVIRONMENT}).application as a then
-- -- because only {JJ_APPLICATION} should use this. really ???
-- w := a.first_window
-- ask_to_save_dialog.show_modal_to_window (a.first_window)
-- end
ask_to_save_dialog.show_modal_to_window (Current)
end
show_save_dialog
-- Show the `file_save_dialog'.
-- Also, passed as an agent in `ask_to_save_dialog'.
do
file_save_dialog.show_modal_to_window (main_windows.first)
end
validate_file_name_and_save
-- Get a file name and write `save_object' to disk.
require
-- save_object_exists: save_object.item /= Void
local
s: STRING
f: RAW_FILE
do
s := file_save_dialog.file_title
if is_valid_file_name (s) then
create f.make_open_write (s)
f.general_store (target)
else
file_save_dialog.show_modal_to_window (main_windows.first)
end
end
validate_file_name_and_open
-- Get a file name and read a object into `save_object'
require
-- save_object_exists: save_object.item /= Void
local
s: STRING
f: RAW_FILE
do
s := file_open_dialog.file_name
if is_valid_file_name (s) then
create f.make_open_read (s)
if attached f.retrieved as a then
if attached {like target_imp} a as t then
set_target (t)
end
end
-- if attached {like target_imp} f.retrieved as t then
---- set_save_object (a)
-- target_imp := t
-- end
else
file_open_dialog.show_modal_to_window (main_windows.first)
end
end
feature {NONE} -- Actions
on_show_preferences_dialog
-- React to a press of the preferences button or menu by
-- showing the `preferences_dialog'.
require
preferences_dialog_exists: preferences_dialog /= Void
do
preferences_dialog.show
if preferences_dialog.is_minimized then
preferences_dialog.restore
end
preferences_dialog.raise
end
on_file_open
-- React to a request to read a system from disk.
do
validate_file_name_and_open
set_widget_states
end
on_file_save
-- React to a request to save the system to disk.
local
w: JJ_MAIN_WINDOW
-- ff: STANDARD_INTERFACE_FILE_FACILITIES
do
-- create ff
-- ff.set_persistent (system)
-- ff.validate_file_name_and_save
-- set_save_object (target)
validate_file_name_and_save
-- if system.is_okay then
-- Change the title of all JJ_MAIN_WINDOWs targeted
-- to `target'
from main_windows.start
until main_windows.exhausted
loop
w := main_windows.item
if w.target = target then
w.draw
end
main_windows.forth
end
-- else
-- -- save operation failed. Write failure?
-- end
-- set_widget_states
end
on_get_target: like target
-- Needed to be able to `set_pebble_function' for buttons so the
-- button can pick the current `target' as a pebble during a pick.
do
Result := target
end
on_make_new_target
-- Create a new target after querying user to save
-- current target if necessary.
local
t: like target
do
create t
set_target (t)
-- draw
end
on_about
-- Display the About dialog.
do
about_dialog.show
end
on_maximize_all
-- Maximize all the main windows
do
main_windows.do_all (agent {JJ_MAIN_WINDOW}.maximize)
end
on_minimize_all
-- Minimize all the main windows
do
main_windows.do_all (agent {JJ_MAIN_WINDOW}.minimize)
end
on_raise_all
-- Raise all the main windows
do
main_windows.do_all (agent {JJ_MAIN_WINDOW}.restore)
end
on_drop_in_new_window (a_target: like target)
-- React to `a_target' drop on the new_window button.
require
target_exists: a_target /= Void
local
w: like Current
do
create w.make (a_target)
w.show
end
on_drop_target (a_target: like target)
-- React to drop of `a_target' (on a button?) by changing
-- the `target' and setting up views.
require
target_exists: a_target /= Void
do
-- system.uncancel
-- system.ask_to_save
-- if not system.is_cancelled.item then
-- set_system (a_system)
-- end
end
-- on_make_new_window
-- Create a new JJ_MAIN_WINDOW (like Current) and
-- target it to the same `system'.
-- local
-- w: like Current
-- do
-- create w.make (target)
-- w.show
-- end
on_exit
-- End the execution, insuring to save unsaved targets.
local
w: JJ_MAIN_WINDOW
do
from main_windows.start
until main_windows.exhausted or else is_cancelled.item
loop
w := main_windows.item
if not is_view_empty then
-- set_save_object (w.target)
ask_to_save
end
main_windows.forth
end
if not is_cancelled.item then
end_application
end
end
feature {JJ_MAIN_WINDOW, APPLICATION_STATE} -- Implementation (support routines)
on_close_window
-- A request to close the window has occured.
-- If this is the only window displaying `system' then give user
-- chance to save the `system' before closing window.
-- Remove the `a_window' from `main_windows' list and destroy it.
-- If it is the last window then end the application.
do
uncancel
check attached {JJ_APPLICATION} (create {EV_ENVIRONMENT}).application as jj_app then
-- Because {JJ_MAIN_WINDOW} (this class) is for use in a {JJ_APPLICATION}.
-- if jj_app.persistence_manager.is_pending then
ask_to_save
-- end
if not is_cancelled.item then
if main_windows.count = 1 then
-- About to close the last window and therefore end the application,
-- so save it's state before destroying this last window.
end_application
else
main_windows.start
main_windows.prune (Current)
destroy
end
end
end
end
feature {COMMAND_MANAGER} -- Implementation
set_widget_states
-- Update the state of the buttons and menu items
do
-- Item always enabled
-- file_menu.enable_sensitive
-- file_new_system_item.enable_sensitive
-- file_open_item.enable_sensitive
-- file_exit_item.enable_sensitive
-- help_menu.enable_sensitive
-- help_about_item.enable_sensitive
-- new_window_button.enable_sensitive
-- new_system_button.enable_sensitive
-- open_button.enable_sensitive
-- help_button.enable_sensitive
-- Items conditionally enabled
if is_view_empty then
file_save_item.disable_sensitive
save_button.disable_sensitive
elseif command_manager.is_at_marked_state then
file_save_item.disable_sensitive
save_button.disable_sensitive
else
file_save_item.enable_sensitive
save_button.enable_sensitive
end
if command_manager.is_undoable then
edit_undo_item.enable_sensitive
undo_button.enable_sensitive
else
edit_undo_item.disable_sensitive
undo_button.disable_sensitive
end
if command_manager.is_executable then
edit_redo_item.enable_sensitive
redo_button.enable_sensitive
else
edit_redo_item.disable_sensitive
redo_button.disable_sensitive
end
end
feature {NONE} -- Implementation (support routines)
is_target_in_other_window: BOOLEAN
-- Is `target' also contained in some other JJ_MAIN_WINDOW?
-- Used to determine if it must be saved when Current is closed.
do
if target /= Void then
from main_windows.start
until main_windows.exhausted or else Result
loop
Result := main_windows.item /= Current and then main_windows.item.target = target
main_windows.forth
end
end
end
end_application
-- Close down the application
do
if attached (create {EV_ENVIRONMENT}).application as a then
a.destroy
end
end
preferences_dialog: EV_TITLED_WINDOW
-- The window, if any, displayed when the `preferences_button' or
-- `preferences_item' is selected.
-- Can be used as a dialog for setting up the views.
Default_preferences_dialog: PREFERENCES_WINDOW
-- For setting window parameters
once
-- create Result.make (target)
create Result
Result.close_request_actions.extend (agent Result.hide)
end
feature {NONE} -- Implementation (dialogs)
about_dialog: ABOUT_DIALOG
-- Show minimal information about the program.
once
create Result
-- Hide when something else is clicked so it can be non-modal
-- and so the user does not have to hit the "okay" button or
-- explicitely close the dialog.
Result.close_request_actions.extend (agent Result.hide)
Result.focus_out_actions.extend (agent Result.hide)
end
File_open_dialog: EV_FILE_OPEN_DIALOG
-- Standard
once
create Result
-- Result.filters.extend (["*.*", "All files"])
Result.open_actions.extend (agent validate_file_name_and_open)
Result.cancel_actions.extend (agent cancel)
end
Ask_to_save_dialog: EV_QUESTION_DIALOG
-- Asks the user if he wants to save the system.
local
dc: EV_DIALOG_CONSTANTS
do
create dc
create Result
-- Result.set_text ("System is not saved!%N%N Save?")
-- Result.button (dc.Ev_yes).select_actions.extend (agent show_save_dialog)
Result.set_text ("Some objects have changed! Commit changes?")
Result.button (dc.ev_yes).select_actions.extend (agent commit_changes)
Result.button (dc.Ev_cancel).select_actions.extend (agent cancel)
end
commit_changes
-- Save any changed objects.
do
check attached {JJ_APPLICATION} (create {EV_ENVIRONMENT}).application as jj_app then
-- Because this is used by JJ_APPLICATIONs
-- jj_app.persistence_manager.commit
end
end
File_save_dialog: EV_FILE_SAVE_DIALOG
-- Standard
once
create Result
-- Result.filters.extend (["*.*", "All files"])
Result.save_actions.extend (agent validate_file_name_and_save)
Result.cancel_actions.extend (agent cancel)
end
feature {NONE} -- Menus
jj_menu_bar: EV_MENU_BAR
-- Standard menu bar for this window.
file_menu: EV_MENU
-- "File" menu for this window (contains New, Open, Close, Exit...)
file_new_target_item: EV_MENU_ITEM
-- "File/New system"
file_open_item: EV_MENU_ITEM
-- "File/Open"
file_save_item: EV_MENU_ITEM
-- "File/Save"
file_exit_item: EV_MENU_ITEM
-- "File/Exit"
edit_menu: EV_MENU
-- "Edit" menu (contains Undo, Redo, Cut, Copy, etc...)
edit_undo_item: EV_MENU_ITEM
-- "Edit/Undo"
edit_redo_item: EV_MENU_ITEM
-- "Edit/Redo"
tool_menu: EV_MENU
-- "Tools" menu (contains Preferences, etc...)
tool_preferences_item: EV_MENU_ITEM
-- "Tools/Preferences"
window_menu: EV_MENU
-- "Window" menu for this window (contains Minimize all, Raise all, etc...)
window_new_item: EV_MENU_ITEM
-- "Window/New"
window_maximize_all_item: EV_MENU_ITEM
-- "Window/Maximize all"
window_minimize_all_item: EV_MENU_ITEM
-- "Window/Minimize all"
window_raise_all_item: EV_MENU_ITEM
-- "Window/Raise all"
help_menu: EV_MENU
-- "Help" menu for this window (contains About...)
help_about_item: EV_MENU_ITEM
-- "Help/About"
feature {NONE} -- Toolbars and buttons
jj_tool_bar_box: EV_HORIZONTAL_BOX
-- Holder for `jj_tool_bar'. Other items can
-- be added here to make a custom bar or to `upper_bar'
-- to place another tool_bar below this one.
jj_tool_bar: EV_TOOL_BAR
-- Standard toolbar for this window
new_window_button: EV_TOOL_BAR_BUTTON
-- Create a new system
new_target_button: EV_TOOL_BAR_BUTTON
-- Create a new system for this window
open_button: EV_TOOL_BAR_BUTTON
-- Opens an existing system
save_button: EV_TOOL_BAR_BUTTON
-- To save the system
minimize_all_button: EV_TOOL_BAR_BUTTON
-- To minimize all the JJ_MAIN_WINDOWs
raise_all_button: EV_TOOL_BAR_BUTTON
-- To restore all the JJ_MAIN_WINDOWs
help_button: EV_TOOL_BAR_BUTTON
-- Opens help engine
undo_button: EV_TOOL_BAR_BUTTON
-- To undo the last command
redo_button: EV_TOOL_BAR_BUTTON
-- To redo the last undone command
feature {NONE} -- Status bar
-- jj_status_bar: EV_STATUS_BAR
-- -- Standard status bar for this window
-- jj_status_label: EV_LABEL
-- -- Label situated in the `jj_status_bar'.
-- -- Note: Call `set_status_text' to change the text
-- -- displayed in the status bar.
feature {NONE} -- Implementation
split_manager: SPLIT_MANAGER
-- Controls placement of sub-windows
feature {NONE} -- Implementation / Constants
Window_title: STRING = "JJ_MAIN_WINDOW"
-- Title of the window.
Window_width: INTEGER = 800
-- Initial width for this window.
Window_height: INTEGER = 600
-- Initial height for this window.
invariant
-- system_exists: system /= Void
end

View File

@ -0,0 +1,36 @@
note
description: "[
Root object for use with {JJ_MAIN_WINDOW} which can be placed
into any number of these windows using the {VIEW} model.
]"
date: "21 Apr 06"
author: "Jimmy J. Johnson"
copyright: "Copyright 2012, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/system/jj_system.e $"
date: "$Date: 2012-05-31 14:05:35 -0400 (Thu, 31 May 2012) $"
revision: "$Revision: 10 $"
class
JJ_SYSTEM
inherit
SHARED
create
default_create
feature {NONE} -- Initialization
initialize_interface
-- Set up the interface items into the `interface_table'.
do
-- interface_table.add_item_with_tuple (<<"{SYSTEM} - System not saved text", "System not saved", "The system has not been saved since last change.", "Changes have been made, but the system has not been save.", "icon_red_cross.ico">>)
-- interface_table.add_item_with_tuple (<<"{SYSTEM} - Not in system text", "Not in system", "The displayed interface names are not used by the program.", "The displayed interface names are not used by the program.", "icon_exec_quit_color.ico">>)
-- interface_table.add_item_with_tuple (<<"{SYSTEM} - Not allowed pixmap", "Not allowed", "Operation not allowed", "The operation you are attempting is not allowed.", "icon_delete_color.ico">>)
-- interface_table.add_item_with_tuple (<<"{SYSTEM} - Empty", "Empty", "Empty view or object", "The view or object is empty.", "icon_class_symbol_gray.ico">>)
end
end

View File

@ -0,0 +1,63 @@
note
description: "[
A {VIEW} dialog for setting user preverences
]"
author: "Jimmy J. Johnson"
copyright: "Copyright 2012, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/system/preferences_window.e $"
date: "$Date: 2015-10-24 07:32:40 -0700 (Sat, 24 Oct 2015) $"
revision: "$Revision: 23 $"
class
PREFERENCES_WINDOW
inherit
-- SPLIT_VIEW
VIEW
undefine
-- default_create,
copy
redefine
create_interface_objects,
initialize
end
EV_TITLED_WINDOW
rename
object_id as ise_object_id
undefine
is_in_default_state
redefine
create_interface_objects,
initialize
end
create
default_create,
make
feature {NONE} -- Initialization
create_interface_objects
-- Create objects to be used by `Current' in `initialize'
-- Implemented by descendants to create attached objects
-- in order to adhere to void-safety due to the implementation bridge pattern.
do
Precursor {VIEW}
Precursor {EV_TITLED_WINDOW}
end
initialize
-- Set up the window
do
Precursor {EV_TITLED_WINDOW}
Precursor {VIEW}
set_title ("System Preferences")
-- split_manager.extend (create {WINDOW_PREFERENCES_VIEW})
extend (create {WINDOW_PREFERENCES_VIEW})
end
end

View File

@ -0,0 +1,42 @@
note
description: "[
Global objects for use in the "jj_vision" cluster
]"
date: "10 May 03"
author: "Jimmy J. Johnson"
copyright: "Copyright 2012, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/system/shared.e $"
date: "$Date: 2015-10-15 13:03:35 -0700 (Thu, 15 Oct 2015) $"
revision: "$Revision: 21 $"
class
SHARED
inherit
ANY
JJ_FILE_FACILITIES
feature -- Access, restricted to descendants
main_windows: LINKED_LIST [JJ_MAIN_WINDOW]
-- List of all open JJ_MAIN_WINDOWs
once
create Result.make
end
command_manager: COMMAND_MANAGER
-- Used to undo/redo commands for this system
once
create Result
end
feature -- Access
minimum_pixmap_size: INTEGER = 8
maximum_pixmap_size: INTEGER = 64
end

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,425 @@
note
description: "[
A {TOOL} used to hold views for editting an {EDITABLE}
]"
date: "23 Feb 04"
author: "Jimmy J. Johnson"
copyright: "Copyright 2012, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/tools/edit_tool.e $"
date: "$Date: 2013-04-25 18:11:22 -0400 (Thu, 25 Apr 2013) $"
revision: "$Revision: 14 $"
class
EDIT_TOOL
inherit
TOOL
redefine
create_interface_objects,
initialize,
add_actions,
target_imp,
set_target
-- history_dropdown,
-- new_history_item
end
create
default_create
feature {NONE} -- Initialization
create_interface_objects
-- Create objects to be used by `Current' in `initialize'
-- Implemented by descendants to create attached objects
-- in order to adhere to void-safety due to the implementation bridge pattern.
do
Precursor {TOOL}
create list_editor_view
create dialog_editor_view
create field_editor_view
-- Create the new buttons before Precursor {TOOL} so `initialize'
-- can call `set_actions' without a Void reference.
create edit_schema_toggle_button
create schema_label
create new_field_button
create delete_field_button
create align_fields_button
edit_schema_toggle_button.set_pixmap (create {EV_PIXMAP}.make_with_pixel_buffer (Icon_shell_color_buffer))
edit_schema_toggle_button.set_tooltip ("EDIT_TOOL.edit_schema_toggle_button")
new_field_button.set_pixmap (create {EV_PIXMAP}.make_with_pixel_buffer (Icon_shell_color_buffer))
new_field_button.set_tooltip ("EDIT_TOOL.new_field_button")
delete_field_button.set_pixmap (create {EV_PIXMAP}.make_with_pixel_buffer (Icon_shell_color_buffer))
delete_field_button.set_tooltip ("EDIT_TOOL.delete_field_button")
align_fields_button.set_pixmap (create {EV_PIXMAP}.make_with_pixel_buffer (Icon_shell_color_buffer))
align_fields_button.set_tooltip ("EDIT_TOOL.align_fields_button")
-- Align_fields menu
create align_fields_menu
create align_on_edit_box_check_item
create align_fields_left_item
create align_fields_right_item
create align_fields_top_item
create align_fields_bottom_item
create align_fields_horizontal_center_item
create align_fields_vertical_center_item
-- New field menu
create new_field_menu
create new_string_field_item
create new_integer_field_item
create new_date_field_item
-- Use default schema at first
create schema
end
initialize
-- Set up the window
-- Create the views in the window using agents.
local
vs: EV_VERTICAL_SEPARATOR
do
build_align_fields_menu
build_new_field_menu
-- Create the tool and its views
Precursor {TOOL}
-- Add `schema_label' to the `title_bar'.
check
title_bar_has_target_label: title_bar.has (target_label)
-- because Precursor {TOOL} should have put it there.
end
title_bar.start
title_bar.search (tool_name_label)
create vs
title_bar.put_right (schema_label)
title_bar.disable_item_expand (schema_label)
title_bar.put_right (vs)
title_bar.disable_item_expand (vs)
-- Add the buttons to the `tool_bar' (from TOOL)
tool_bar.extend (edit_schema_toggle_button)
-- Create the views
split_manager.set_horizontal
split_manager.extend_siblings (field_editor_view, dialog_editor_view)
split_manager.set_vertical
split_manager.extend_siblings (split_manager.last_view, list_editor_view)
-- Set up the views in this tool.
split_manager.enable_mode_changes
split_manager.set_split_mode
split_manager.disable_view (field_editor_view)
end
-- initialize_interface
-- -- Add interface items for this class to the `interface_table'.
-- do
-- Precursor {TOOL}
-- interface_table.add_item_with_tuple (<<"{EDIT_TOOL}", "EDIT_TOOL", "This is an EDIT_TOOL.", "This tool is used to create schemas.", "icon_tool_color.ico">>)
-- interface_table.add_item_with_tuple (<<"{EDIT_TOOL}.edit_schema_toggle_button", "Toggles schema build mode", "Click this button to tobble between schema building and normal view", "This tool is used to create schemas.", "icon_tool_color.ico">>)
-- interface_table.add_item_with_tuple (<<"{EDIT_TOOL}.new_field_button", "Create a new field", "Open a drop-down menu for adding fields.", "This button opens a drop-down menu for creating new fields.", "icon_exe_up_to_date.ico">>)
-- interface_table.add_item_with_tuple (<<"{EDIT_TOOL}.delete_field_button", "Delete field", "Delete the selected fields", "This button deletes the selected fields from the schema.", "icon_exec_quit_color.ico">>)
-- interface_table.add_item_with_tuple (<<"{EDIT_TOOL}.align_fields_button", "Align fields", "Align the selected fields.", "This button pulls down a menu for aligning fields in various methods.", "icon_format_clickable_color.ico">>)
-- interface_table.add_item_with_tuple (<<"{EDIT_TOOL} - new_string_field", "Create a STRING field", "Create a STRING field", "Creates a new field of type STRING.", "icon_display_labels_color.ico">>)
-- interface_table.add_item_with_tuple (<<"{EDIT_TOOL} - new_integer_field", "Create an INTEGER field", "Create an INTEGER field", "Creates a new field of type INTEGER.", "icon_once_symbol.ico">>)
-- interface_table.add_item_with_tuple (<<"{EDIT_TOOL} - new_date_field", "Create a DATE field", "Create a DATE field", "Creates a new field of type DATE.", "icon_new_editor_color.ico">>)
-- end
build_align_fields_menu
-- Build the `align_fields_menu'.
do
-- put items into the menu
align_fields_menu.extend (align_on_edit_box_check_item)
align_fields_menu.extend (align_fields_left_item)
align_fields_menu.extend (align_fields_right_item)
align_fields_menu.extend (align_fields_top_item)
align_fields_menu.extend (align_fields_bottom_item)
align_fields_menu.extend (align_fields_horizontal_center_item)
align_fields_menu.extend (align_fields_vertical_center_item)
end
build_new_field_menu
-- Build the `new_field_menu'
do
-- Put the items into the menu
new_field_menu.extend (new_string_field_item)
new_field_menu.extend (new_integer_field_item)
new_field_menu.extend (new_date_field_item)
end
add_actions
-- Add actions to the widgets
do
Precursor {TOOL}
-- Set actions for buttons and menus
edit_schema_toggle_button.select_actions.extend (agent on_edit_schema_toggle_button_pressed)
new_field_button.select_actions.extend (agent on_new_field_button_pressed)
new_string_field_item.select_actions.extend (agent on_create_new_string_field)
new_date_field_item.select_actions.extend (agent on_create_new_date_field)
new_integer_field_item.select_actions.extend (agent on_create_new_integer_field)
delete_field_button.select_actions.extend (agent on_delete_field)
-- Set actions for views
dialog_editor_view.control_select_actions.extend (agent on_control_selected)
-- Reminder: Though the `target_label' is part of TOOL, the ability to
-- change the "field" displayed in the label is only changable from
-- a system using this [EDIT_TOOL] class.
tool_name_label.drop_actions.extend (agent on_set_target_label_field)
end
feature -- Access
selected_control: detachable CONTROL
-- The control last selected by the user in "schema-edit" mode.
list_editor_view: LIST_EDITOR_VIEW
-- View in list format for editting the schema.
dialog_editor_view: DIALOG_EDITOR_VIEW
-- View for editting a record.
field_editor_view: FIELD_EDITOR_VIEW
-- View for editting specific fields from the record's schema.
feature -- Element change
set_target (a_target: like target)
-- Change `target' and pass it on to the views.
do
-- Must handle a FIELD differently.
if attached {FIELD} a_target as f then
if is_edit_schema_mode then
field_editor_view.set_record (f)
end
else
Precursor {TOOL} (a_target)
list_editor_view.set_record (a_target)
dialog_editor_view.set_record (a_target)
dialog_editor_view.set_schema (get_schema)
draw
end
end
feature -- Status report
is_edit_schema_mode: BOOLEAN
-- Is the tool in a mode to allow changes to the schema?
feature {NONE} -- Implementation (actions)
on_edit_schema_toggle_button_pressed
-- React to a press of the edit_schema_toggle_button' by
-- toggling between "schema-edit" mode and "normal" mode.
do
if edit_schema_toggle_button.is_selected then
-- Add the `field_editor_view'.
split_manager.enable_view (field_editor_view)
split_manager.set_split_mode
split_manager.disable_mode_changes
dialog_editor_view.control_select_actions.resume
-- Add the buttons
tool_bar.extend (new_field_button)
tool_bar.extend (delete_field_button)
tool_bar.extend (align_fields_button)
is_edit_schema_mode := True
else
-- Remove the `field_editor_view'.
split_manager.enable_mode_changes
split_manager.disable_view (field_editor_view)
dialog_editor_view.control_select_actions.block
-- Remove the buttons
tool_bar.start
tool_bar.prune (new_field_button)
tool_bar.start
tool_bar.prune (delete_field_button)
tool_bar.start
tool_bar.prune (align_fields_button)
is_edit_schema_mode := False
end
end
on_control_selected (a_control: CONTROL)
-- A control has been selected in "schema-edit" mode.
-- Added as agent to `dialog_editor_view.control_selected_actions' in
-- feature `on_edit_schema_toggle_button_pressed'.
require
control_exists: a_control /= Void
do
selected_control := a_control
field_editor_view.set_record (a_control.field)
field_editor_view.set_schema (a_control.field.schema)
syncronize_buttons
ensure
control_was_selected: selected_control = a_control
field_was_set: field_editor_view.record = a_control.field
end
on_new_field_button_pressed
-- React to a press of the `new_field_button'.
do
new_field_menu.show
end
on_create_new_string_field
-- React to a menu item or button used to create a new string field.
local
f: STRING_FIELD
c: CHANGE_FIELDS_COMMAND
do
create f
create c.make (schema, f)
command_manager.add_command (c)
end
on_create_new_date_field
-- React to a menu item or button used to create a new date field.
local
f: YMD_TIME_FIELD
c: CHANGE_FIELDS_COMMAND
do
create f
create c.make (schema, f)
command_manager.add_command (c)
end
on_create_new_integer_field
-- React to a menu item or button used to create a new integer field.
local
f: INTEGER_FIELD
c: CHANGE_FIELDS_COMMAND
do
create f
create c.make (schema, f)
command_manager.add_command (c)
end
on_delete_field
-- Remove the selected field from the schema.
require
is_deletable: not target.schema.has_mandatory (field_editor_view.record)
local
f: FIELD
c: CHANGE_FIELDS_COMMAND
do
if not field_editor_view.is_view_empty then
f := field_editor_view.record
create c.make (schema, f)
c.set_delete_action
command_manager.add_command (c)
end
end
on_set_target_label_field (a_field: STRING_FIELD)
-- Change the "global" field to be used to determine what part of
-- an EDITABLE (based on `a_field') to display in the drop-downs
-- and lists, etc. (See `set_target_label_field' from EDITABLE.)
require
field_exists: a_field /= Void
local
e: EDITABLE
do
-- Because `target_label_field' is a once feature just need to
-- make sure it is called; to do that I need an EDITABLE.
create e
e.set_target_label_field (a_field)
end
feature {FIELD_EDITOR_VIEW} -- Implementation
get_schema: SCHEMA
-- Obtain a schema from the `record'
require
target_exists: target /= Void
do
if target.schema /= schema then
Result := target.schema
schema := Result
else
Result := schema
end
ensure
result_exists: result /= Void
end
feature {NONE} -- Implementation
target_imp: detachable EDITABLE
-- Detachable implementation of `target' for void-safety
schema: SCHEMA
-- The last schema used and passed to the views.
syncronize_buttons
-- Make sure the buttons are in the correct state.
local
f: FIELD
do
f := field_editor_view.record
if schema.has_mandatory (f) then
delete_field_button.disable_sensitive
else
delete_field_button.enable_sensitive
end
end
feature {NONE} -- Implementation (buttons)
edit_schema_toggle_button: EV_TOGGLE_BUTTON --EV_TOOL_BAR_TOGGLE_BUTTON
-- Toggles between normal mode and a mode allowing
-- editting of the `schema' from `record'.
schema_label: EV_LABEL
-- Shows the `id' or name of the schema currently in use.
align_fields_button: EV_BUTTON --EV_TOOL_BAR_BUTTON
-- Aligns a group of fields
delete_field_button: EV_BUTTON --EV_TOOL_BAR_BUTTON
-- Deletes the selected field(s) from the `schema' of `record'
new_field_button: EV_BUTTON --EV_TOOL_BAR_BUTTON
-- Pulls down a menu for creating a new field
new_field_menu: EV_MENU
-- Pull down menu for selecting the type of field
-- activated by the `new_field_button'.
new_string_field_item: EV_MENU_ITEM
-- Used to create a new STRING_FIELD
new_integer_field_item: EV_MENU_ITEM
-- Used to create a new INTEGER_FIELD
new_date_field_item: EV_MENU_ITEM
-- Used to create a new YMD_TIME_FIELD
align_fields_menu: EV_MENU
-- Pull down menu for selecting the field alignment method,
-- activated by the `align_field_button'.
align_on_edit_box_check_item: EV_CHECK_MENU_ITEM
-- Select to make allignments key off the edit boxes of the
-- selected controls as opposed to the labels.
align_fields_left_item: EV_MENU_ITEM
-- Align the left sides of the selected controls
align_fields_right_item: EV_MENU_ITEM
-- Align the right sides of the selected controls
align_fields_top_item: EV_MENU_ITEM
-- Align the tops of the selected controls
align_fields_bottom_item: EV_MENU_ITEM
-- Align the bottoms of the selected controls
align_fields_horizontal_center_item: EV_MENU_ITEM
-- Align the horizontal centers of the selected controls
align_fields_vertical_center_item: EV_MENU_ITEM
-- Align the vertical centers of the selected controls
invariant
has_schema_if_has_record: target_imp /= Void implies schema /= Void
has_correct_schema: target_imp /= Void implies target.has_schema (schema)
end

View File

@ -0,0 +1,80 @@
note
description: "[
A {TOOL} that holds a {TEXT_VIEW} in which to edit a long string
]"
date: "4 Jan 08"
author: "Jimmy J. Johnson"
copyright: "Copyright 2012, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/tools/text_tool.e $"
date: "$Date: 2013-06-16 13:26:06 -0700 (Sun, 16 Jun 2013) $"
revision: "$Revision: 15 $"
class
TEXT_TOOL
inherit
TOOL
redefine
create_interface_objects,
initialize,
build_tool_bars,
add_actions
-- view
end
create
default_create
feature {NONE} -- Initialization
create_interface_objects
-- Create objects to be used by `Current' in `initialize'
-- Implemented by descendants to create attached objects
-- in order to adhere to void-safety due to the implementation bridge pattern.
do
Precursor {TOOL}
create clear_button
create view
clear_button.set_pixmap (create {EV_PIXMAP}.make_with_pixel_buffer (Icon_shell_color_buffer))
clear_button.set_tooltip ("{EDIT_TOOL}.clear_button")
end
initialize
-- Build the interface for this window
do
Precursor {TOOL}
split_manager.extend (view)
end
build_tool_bars
-- Create the two toolbars.
do
Precursor {TOOL}
tool_bar.extend (clear_button)
-- tool_bar.extend (create {EV_TOOL_BAR_SEPARATOR})
end
add_actions
-- Adds agents to the buttons and menues.
do
Precursor {TOOL}
clear_button.pointer_button_press_actions.force_extend (agent clear)
end
feature {NONE} -- Implementation
clear
-- delete all text
do
view.remove_text
end
clear_button: EV_BUTTON --EV_TOOL_BAR_BUTTON
-- Button to move to previous record
view: TEXT_VIEW
-- Text area for displaying ships info, etc.
end

View File

@ -0,0 +1,750 @@
note
description: "[
Base class for all the tool windows. Has history list for
stepping forward and backward through the `viewable_items'
which have been displayed in the tool.
The {TOOL} is a EV_FRAME containing an EV_VERTICAL_BOX called
`main_container'. Into `main_container' is placed an EV_HORIZONTAL_BOX
serving as a toolbar called `title_bar'. (An EV_HORIZONTAL_BOX was
used instead of a EV_TOOL_BAR in order to add widgets other than
EV_TOOLBAR_BUTTONS to the toolbar, giving the desired look.) The
`title_bar' is built by adding text, buttons, spaces, other bars, etc
to it. Below the `title_bar' is added the `cell' from `split_manager'
which contains any {VIEW}s in the tool.
TNL = `tool_name_label' -- contains the `name' of the tool
HTB = `history_tool_bar` -- contains the forth and back buttons
TL = `target_label' -- shows the name of the object in the tool
TB = `tool_bar' -- clients add buttons here
UT = `user_text' -- an EV_LABEL allowed to expand (see `set_user_text')
RTB = `resize_tool_bar' -- contains the minimize/miximize and close buttons
FB = `forth_button' -- To go back in the history
BB = `back_button' -- to go forward in the history
xB = `maximize_button' or `restore_button'
X = `close_button'
`bar' = split_manager.bar -- any buttons produced by `split_manager' are here
|------------------------------ title bar -----------------------------------|
| | TNL | |--- HTB ---| | TL | |-- TB --| | `bar' | | UT | |--- RTB ---|
| | |BB| |FB| | | ... | | ... | | |xB| |X| |
|----------------------------------------------------------------------------|
| |
| |
| split_manager.cell |
| |
| |
|----------------------------------------------------------------------------|
The `bar' and `cell', both from `split_manager', will be empty because no
{VIEW}s have been added to the `split_manager'. Descendants should follow this
pattern as described in class {SPLIT_MANAGER}, redefining `initialize'.
feature initialize is
-- Set up the window.
-- Redefine to add the views to the window.
do
Precursor {TOOL}
split_manager.extend (view_one)
split_manager.extend (view_two)
end
Feature `initialize' above assumes two features, `view_one' and `view_two',
to be defined to return a descendant of {VIEW} and some effected EV_WIDGET.
]"
date: "30 Sep 03"
author: "Jimmy J. Johnson"
copyright: "Copyright 2012, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/tools/tool.e $"
date: "$Date: 2015-10-24 07:32:40 -0700 (Sat, 24 Oct 2015) $"
revision: "$Revision: 23 $"
class
TOOL
inherit
VIEW
undefine
-- default_create,
copy
redefine
create_interface_objects,
initialize,
add_actions,
set_target,
draw,
state
end
EV_FRAME
rename
object_id as ise_object_id
undefine
is_in_default_state
redefine
create_interface_objects,
initialize
end
PIXEL_BUFFERS
undefine
default_create,
copy
end
create
make
feature {NONE} -- Initialization
create_interface_objects
-- Create objects to be used by `Current' in `initialize'
-- Implemented by descendants to create attached objects
-- in order to adhere to void-safety due to the implementation bridge pattern.
do
Precursor {VIEW}
Precursor {EV_FRAME}
-- create history
create history_dropdown
create main_container
-- Create the action sequences
create maximize_actions
create close_actions
create restore_actions
-- Create the buttons
create title_bar
create tool_bar
create history_tool_bar
-- create user_text
create resize_tool_bar
create tool_name_label
create target_label
-- create history_combo -- see "fix me" comment before `update_history_combo' feature
create split_manager
-- Create buttons
create back_button
create forth_button
create maximize_button
create restore_button
create close_button
size_button := maximize_button
-- Set button attributes
back_button.set_pixmap (create {EV_PIXMAP}.make_with_pixel_buffer (Icon_back_color_buffer))
back_button.set_tooltip ("Back")
forth_button.set_pixmap (create {EV_PIXMAP}.make_with_pixel_buffer (Icon_forth_color_buffer))
forth_button.set_tooltip ("Forth")
maximize_button.set_pixmap (create {EV_PIXMAP}.make_with_pixel_buffer (Icon_maximize_color_buffer))
maximize_button.set_tooltip ("Maximize")
restore_button.set_pixmap (create {EV_PIXMAP}.make_with_pixel_buffer (Icon_restore_color_buffer))
restore_button.set_tooltip ("Restore")
close_button.set_pixmap (create {EV_PIXMAP}.make_with_pixel_buffer (Icon_close_color_buffer))
close_button.set_tooltip ("Close")
end
initialize
-- Build the interface for this window
-- Must create `view' before calling this.
local
hs: EV_HORIZONTAL_SEPARATOR
do
Precursor {EV_FRAME}
Precursor {VIEW}
-- tools.extend (Current)
-- Prevent the tool from holding more than one target, so
-- the history functions will work.
history_dropdown.set_parent_tool (Current)
target_label.set_minimum_width (Target_label_width)
-- view_manager.set_single_mode
-- split_manager.disable_mode_changes
-- Create the toolbar
build_tool_bars
build_title_bar
-- To get the tool bar look I used small 16x16 pixel icons.
-- The `title_bar' is an EV_HORIZONTAL_BOX which contains several
-- widets. These are a EV_LABLE, an EV_TOOL_BAR, another label
-- (which is allowed to expand), and finally another EV_TOOL_BAR
-- containing the `minimize_button' or the `restore_button' (depending
-- on `is_maximized') and the `close_button'.
main_container.extend (title_bar)
main_container.disable_item_expand (title_bar)
create hs
main_container.extend (hs)
main_container.disable_item_expand (hs)
main_container.extend (split_manager.cell)
extend (main_container)
set_minimum_height (100)
-- set_view (Default_view)
-- set_button_states
-- No, do not call `add_actions'; it is already called
-- from {VIEW}.`initialize' throught {SPLIT_VIEW}
-- add_actions
end
build_title_bar
-- Create the small title bar at top of tool
local
lab: EV_LABEL
do
-- Add the name of tool to the title bar
tool_name_label.set_text (generating_type.name)
title_bar.extend (tool_name_label)
title_bar.disable_item_expand (tool_name_label)
-- Add the forth and back buttons (in `history_tool_bar')
title_bar.extend (history_tool_bar)
title_bar.disable_item_expand (history_tool_bar)
-- Add a title to the tool
-- title_bar.extend (target_label)
-- title_bar.disable_item_expand (target_label)
-- Add a history list combo box
-- history_combo.disable_edit
-- title_bar.extend (history_combo) -- see "fix me" comment before `update_history_combo' feature
-- If use EV_COMBO_BOX the title bar must be bigger to
-- allow for `minimum_height' of the box.
-- Add the tool bar (to be used in descendants
title_bar.extend (tool_bar)
title_bar.disable_item_expand (tool_bar)
-- Put in a spacer to move the mode buttons to right
create lab.make_with_text (" ")
title_bar.extend (lab)
title_bar.disable_item_expand (lab)
-- Add the `bar' from `view_manager' here
title_bar.extend (split_manager.bar)
-- title_bar.disable_item_expand (split_manager.bar)
-- Add the maximize/minimize and hide buttons (in `resize_tool_bar')
title_bar.extend (resize_tool_bar)
title_bar.disable_item_expand (resize_tool_bar)
end
build_tool_bars
-- Create the tool bar.
local
vs: EV_VERTICAL_SEPARATOR
do
history_tool_bar.extend (back_button)
history_tool_bar.extend (forth_button)
history_tool_bar.extend (target_label)
-- create vs
-- history_tool_bar.extend (vs)
-- history_tool_bar.disable_item_expand (vs)
resize_tool_bar.extend (size_button)
resize_tool_bar.extend (close_button)
end
add_actions
-- Add functionality to the buttons.
do
Precursor {VIEW}
target_label.set_pebble_function (agent on_get_target)
-- Add actions to the buttons.
maximize_button.select_actions.extend (agent on_maximize)
restore_button.select_actions.extend (agent on_restore)
close_button.select_actions.extend (agent on_close)
back_button.select_actions.extend (agent on_back)
forth_button.select_actions.extend (agent on_forth)
-- Add actions to `history'
history_dropdown.select_actions.extend (agent on_history_item_selected)
target_label.pointer_button_press_actions.extend (agent on_target_label_selected)
-- target_label.drop_actions.extend (agent on_field_dropped_on_target_label)
-- see "fix me" comment before `update_history_combo' feature
-- history_combo.select_actions.extend (agent on_history_selected)
-- Add actions to update any views contained in this tool
-- No. Don't do this as the tool may contain views which only want to handle a part of the viewable.
-- Passing the wrong kind breaks the contract. Make each descendent descide what to pass to its children views.
-- viewable_added_action_sequence.extend (agent on_viewable_added)
end
feature -- Access
tool_bar: EV_HORIZONTAL_BOX --EV_TOOL_BAR
-- Available for adding new buttons in descendants.
state: TOOL_STATE
-- Snapshot of the current settings of Current
do
create Result.make (Current)
end
feature -- Element change
set_target (a_target: like target)
-- Change the value of `target' and add it to the `object_set' (the set
-- of objects contained in this view. The old target is removed from
-- the set.
do
Precursor {VIEW} (a_target)
update_history
-- if target_imp /= a_target then
-- Precursor {VIEW} (a_target)
---- add_object (a_target.target_label_field)
---- tool_label.set_accept_cursor (a_viewable.accept_cursor)
---- tool_label.set_deny_cursor (a_viewable.deny_cursor)
-- update_history
-- draw
-- end
end
-- set_user_text (a_string: STRING)
-- -- Change the `user_text'
-- do
-- user_text.set_text (a_string)
-- end
feature {SPLIT_MANAGER, HISTORY_DROPDOWN} -- Access
tool_name_label: EV_LABEL
-- String in top left of toolbar to display the name of the tool.
target_label: EV_LABEL
-- String in the bar to display the name of the `target'.
maximize_actions: EV_NOTIFY_ACTION_SEQUENCE
-- Actions to be performed when the tool is maximized.
close_actions: EV_NOTIFY_ACTION_SEQUENCE
-- Actions to be performed when the tool is closed.
restore_actions: EV_NOTIFY_ACTION_SEQUENCE
-- Actions to be performed when the tool is restored.
feature -- Element change
-- set_user_text (a_text: STRING_8)
-- -- Change the `user_text' that is displayed in the title bar.
-- do
-- user_text.set_text (a_text)
-- end
feature -- Status report
is_maximized: BOOLEAN
-- Is the tool in a maximized state?
is_resizable: BOOLEAN
-- Is the tool resizable? (E.g. is the `resize_tool_bar' visible?)
do
Result := resize_tool_bar.is_displayed
end
-- is_destroyed: BOOLEAN
-- -- Is `Current' no longer usable?
-- do
-- Result := not tools.has (Current) and Precursor {EV_FRAME}
-- end
feature -- Status setting
enable_resize
-- Allow the `resize_tool_bar' to show.
do
resize_tool_bar.show
end
disable_resize
-- Hide the `resize_tool_bar'.
do
resize_tool_bar.hide
end
enable_history
-- Make the `history_tool_bar' visible
do
history_tool_bar.show
-- target_label.show
end
disable_history
-- Make the `history_tool_bar' NOT visible
do
history_tool_bar.hide
-- target_label.hide
end
feature -- Basic operations
draw
-- Builds the string shown at top of the tool in `viewable_label'
-- using the id of the object.
local
n: STRING
s: STRING
f: EV_FONT
i: INTEGER
w: INTEGER -- for testing
do
if is_view_empty then
n := "Empty"
else
if attached {EDITABLE} target as e then
n := e.display_name
else
n := target.generating_type
end
end
f := target_label.font
create s.make (0)
from i := 1
until i > n.count or else f.string_width (s) >= Target_label_width
loop
w := f.string_width (s)
s.append_character (n.item (i))
i := i + 1
end
if f.string_width (s) > Target_label_width then
s.remove_tail (1)
end
target_label.set_text (s)
target_label.set_tooltip (n)
set_button_states
end
feature {NONE} -- Actions
-- on_field_dropped_on_target_label (a_field: STRING_FIELD) is
-- -- React to a drop of `a_field' onto the `target_label'.
-- require
-- field_exists: a_field /= Void
-- do
-- target.set_target_label_field (a_field)
-- draw_views (target.target_label_field)
-- end
on_target_label_selected (a_x, a_y, a_button: INTEGER;
a_x_tilt, a_y_tilt, a_pressure: DOUBLE;
a_screen_x, a_screen_y: INTEGER)
--
do
if a_button = 1 then
history_dropdown.show
end
end
on_history_item_selected
-- React to an item selection from the `history_dropdown'.
do
set_target (selected_history_item_target)
end
on_get_target: like target
-- Used as agent for `target_label.get_pebble_function' because
-- an attribute cannot be used as an agent
do
Result := target
end
-- see "fix me" comment before `update_history_combo' feature
-- on_history_selected is
-- -- Handle an item select in the history combo box
-- require
-- history_exists: history /= Void
-- local
-- cli: CLUSTER_LIST_ITEM
-- do
-- cli ?= history_combo.selected_item
-- check
-- cli_not_void: cli /= Void -- because only CLUSTER_LIST_ITEMS should be in list
-- end
-- set_cluster (cli.cluster)
-- end
on_back
-- Handle a go back request (from button or menu).
require
history_exists: history_dropdown /= Void
history_can_go_back: not history_dropdown.is_off and then not history_dropdown.is_before
local
v: HISTORY_ITEM
do
history_dropdown.back
v := history_dropdown.item
check attached {like target} v.target as t then
set_target (t)
end
set_button_states
end
on_forth
-- Handle a go forth request (from button or menu).
require
history_exists: history_dropdown /= Void
history_can_go_forth: not history_dropdown.is_off and then not history_dropdown.is_after
local
v: HISTORY_ITEM
do
history_dropdown.forth
v := history_dropdown.item
check attached {like target} v.target as t then
set_target (t)
end
set_button_states
end
on_maximize
-- React to a request (button or menu) to "maximize" by performing
-- the actions in `maximize_actions'.
require
resizing_allowed: is_resizable
do
maximize_actions.call ([])
end
on_restore
-- React to a request (button or menu) to "maximize" by performing
-- the actions in `maximize_actions'.
require
resizing_allowed: is_resizable
do
restore_actions.call ([])
end
on_close
-- React to a close request by executing the `close_actions'.
require
resizing_allowed: is_resizable
do
close_actions.call ([])
end
feature {SPLIT_MANAGER, TOOL_STATE} -- Actions
maximize
-- Put window in maximized state
require
resizing_allowed: is_resizable
do
is_maximized := True
if not (size_button = restore_button) then
resize_tool_bar.go_i_th (resize_tool_bar.index_of (size_button, 1))
resize_tool_bar.replace (restore_button)
size_button := restore_button
end
close_button.disable_sensitive
end
restore
-- Put window back in default state
require
-- resizing_allowed: is_resizable
do
is_maximized := False
if not (size_button = maximize_button) then
resize_tool_bar.go_i_th (resize_tool_bar.index_of (size_button, 1))
resize_tool_bar.replace (maximize_button)
size_button := maximize_button
end
close_button.enable_sensitive
end
close_button: EV_TOOL_BAR_BUTTON
-- Button containing an "X" icon
maximize_button: EV_TOOL_BAR_BUTTON
-- Button which parent can access intended
-- to be used to maximize the tool.
restore_button: EV_TOOL_BAR_BUTTON
-- Button which parent can access intended
-- to be used to normalize (restore) the tool.
feature {NONE} -- Implementation
update_history
-- Update the history list.
require
target_exists: target /= Void
local
found: BOOLEAN
v: HISTORY_ITEM
oldest_v: HISTORY_ITEM
do
-- if not history.has (viewable) then -- not needed if history is a SET
-- does history have viewable? Must do a search because list items
from history_dropdown.start
until found or else history_dropdown.is_exhausted
loop
v := history_dropdown.item
if v.is_simular (new_history_item) then
found := True
else
history_dropdown.forth
end
end
if found then
-- leave list as is but change time stamp of found item
v := history_dropdown.item
v.reset_time_stamp
else
-- not found so must add a new one
v := new_history_item
history_dropdown.extend (v)
if history_dropdown.count > maximum_history_items then
-- find oldest item in list and remove it
oldest_v := history_dropdown.first
from history_dropdown.start
until history_dropdown.is_exhausted
loop
v := history_dropdown.item
if v.time_stamp < oldest_v.time_stamp then
oldest_v := history_dropdown.item
end
history_dropdown.forth
end
history_dropdown.start
history_dropdown.prune (oldest_v)
end
history_dropdown.start
history_dropdown.search (v)
-- Display a string describing the target
target_label.set_text (v.target.generating_type.name + " " + v.time_stamp.as_string)
check
not_off: not history_dropdown.is_off -- because just inserted it
end
end
-- update_history_combo -- see "fix me" comment before `update_history_combo' feature
-- set_button_states
-- end
ensure
proper_histroy_count: history_dropdown.count <= maximum_history_items
end
-- Fix me!!!
-- `update_history_combo' is a problem.
-- Line "history_combo.wipe_out" causes a system crash, perhaps the screen
-- objects are not getting destroyed? Tried destroying each item in combo
-- but that did not help.
-- Also, can't seem to set the text; get an infinate loop?
-- Besides, the combo box is too tall; it make the TOOL's toolbar and buttons
-- too big, so commenting it out.
-- update_history_combo is
-- -- Put the history items into the `history_combo' box
-- local
-- cli: CLUSTER_LIST_ITEM
-- pos: CURSOR
-- c: CLUSTER
-- do
-- history_combo.wipe_out
-- pos := history.cursor
-- c := history.item.cluster
-- from history.start
-- until history.exhausted
-- loop
-- if history.item.cluster /= c then
-- create cli.make (history.item.cluster)
-- history_combo.extend (cli)
-- end
-- history.forth
-- end
-- history.go_to (pos)
-- history_combo.enable_edit -- so set_text will work
-- history_combo.set_text (history.item.cluster.id)
-- history_combo.disable_edit
-- end
set_button_states
-- Set the states of the back and forth buttons.
do
if history_dropdown.is_empty or history_dropdown.is_first or history_dropdown.is_before then
back_button.disable_sensitive
else
back_button.enable_sensitive
end
if history_dropdown.is_empty or history_dropdown.is_last or history_dropdown.is_after then
forth_button.disable_sensitive
else
forth_button.enable_sensitive
end
if history_dropdown.is_empty then
target_label.disable_sensitive
else
target_label.enable_sensitive
end
end
main_container: EV_VERTICAL_BOX
-- Holds the other widgets in the TOOL.
title_bar: EV_HORIZONTAL_BOX
-- Holds the name of tool, `history_tool_bar', and `resize_tool_bar'.
history_tool_bar: EV_HORIZONTAL_BOX --EV_TOOL_BAR
-- The toolbar with the forth, back and posibly history buttons.
-- user_text: EV_LABEL
-- -- Text settable by `set_user_text'
resize_tool_bar: EV_TOOL_BAR
-- Tool bar to hold resize and close buttons
feature {NONE} -- Implementation
forth_button: EV_BUTTON --EV_TOOL_BAR_BUTTON
-- Button containing go back icon
back_button: EV_BUTTON --EV_TOOL_BAR_BUTTON
-- Button containing go forth icon
size_button: EV_TOOL_BAR_BUTTON
-- Button containing maximize or restore icon
-- history_combo: EV_COMBO_BOX -- see "fix me" comment before `update_history_combo' feature
-- To pull down a history list
maximum_history_items: INTEGER = 5
-- Number of items to keep in history list
feature {HISTORY_DROPDOWN} -- Implementation
history_dropdown: HISTORY_DROPDOWN
-- A dropdown-like box containing the clusters previously targetted
-- in this tool from which selections can be made to retarget the tool.
new_history_item: HISTORY_ITEM
-- Helper routine called by `update_history' when it needs to
-- create a new time-stamped viewable for placement in the `history'.
-- Made a seperate routine because descendents may want to store
-- other types of items in the history list.
do
create Result.make (target)
end
selected_history_item_target: like target
-- The item from the `history_dropdown' typecast to `target'
do
check attached {HISTORY_ITEM} history_dropdown.selected_item as hi then
check attached {like target} hi.target as t then
Result := t
end
end
ensure
Result_exists: Result /= Void
end
feature {NONE} -- Implementation
split_manager: SPLIT_MANAGER
-- Controls placement of sub-windows
--feature {TOOL} -- Implementation
-- tools: LINKED_SET [TOOL]
-- -- Keeps track of all the TOOLs in the system
-- once
-- create Result.make
-- end
feature {NONE} -- Constants
Target_label_width: INTEGER = 100
-- Sets the size of the `target_label' in pixels.
invariant
close_button_exists: close_button /= Void
restore_button_exists: restore_button /= Void
maximize_button_exists: maximize_button /= Void
-- label_clickable_when: history.is_empty implies not object_label.is_sensitive
end

View File

@ -0,0 +1,203 @@
note
description: "[
Helper class for manipulating an {EV_COLOR}. Specifically, it
gives a range of colors starting from `color' and fading toward
a darker or lighter color.
Black is at the "dark" end of the scale and a dark_grey (first
passing through a lighter color) is at the other end.
]"
author: "Jimmy J. Johnson"
revision: "$Revision: 33 $"
class
COLOR_FADER
inherit
ANY
redefine
default_create
end
create
default_create,
make_with_color,
make_with_color_and_count
feature {NONE} -- Initialization
default_create
-- Initialize with `color' rgb = [0.5, 0.5, 0.5] (a mid-tone grey)
-- and five steps.
do
create color.make_with_rgb (0.5, 0.5, 0.5)
count := 10
end
make_with_color (a_color: EV_COLOR)
-- Initialize with `a_color' and five steps
require
color_exists: a_color /= Void
do
create color.make_with_rgb (a_color.red, a_color.green, a_color.blue)
count := 10
end
make_with_color_and_count (a_color: EV_COLOR; a_count: INTEGER)
-- Set `color' and `count'
require
color_exists: a_color /= Void
count_large_enough: a_count >= 0
do
create color.make_with_rgb (a_color.red, a_color.green, a_color.blue)
count := a_count
end
feature -- Access
color: EV_COLOR
-- The original color on which results are based
count: INTEGER
-- The number of steps (or max distance) to go from the original color to full dark
distance: INTEGER
-- The current place in the range of colors
-- (Higher numbers are further away from `color'; a `step'
-- of zero gives the original color.)
i_th_darker (a_distance: INTEGER): EV_COLOR
-- The color a `a_distance' away from `color' toward the black
require
distance_large_enough: a_distance >= 0
distance_small_enough: a_distance <= count
local
r, g, b: REAL_32
r_dist, g_dist, b_dist: REAL_32
r_step, g_step, b_step: REAL_32
do
r_dist := Darkest - color.red
g_dist := Darkest - color.green
b_dist := Darkest - color.blue
r_step := r_dist / count
g_step := g_dist / count
b_step := b_dist / count
r := color.red + r_step * a_distance
g := color.green + g_step * a_distance
b := color.blue + b_step * a_distance
create Result.make_with_rgb (r, g, b)
end
darker: EV_COLOR
-- The color a `distance' away from `color' toward the `Darkest'
do
Result := i_th_darker (distance)
end
i_th_lighter (a_distance: INTEGER): EV_COLOR
-- The color a `a_distance' away from `color' toward the `Grey'
require
distance_large_enough: a_distance >= 0
distance_small_enough: a_distance <= count
local
r, g, b: REAL_32
r_dist, g_dist, b_dist: REAL_32
r_step, g_step, b_step: REAL_32
do
r_dist := Grey - color.red
g_dist := Grey - color.green
b_dist := Grey - color.blue
r_step := r_dist / count
g_step := g_dist / count
b_step := b_dist / count
r := color.red + r_step * a_distance
g := color.green + g_step * a_distance
b := color.blue + b_step * a_distance
create Result.make_with_rgb (r, g, b)
end
lighter: EV_COLOR
-- The color a `distance' away from `color' toward the lighter end
do
Result := i_th_lighter (distance)
end
feature -- Element change
set_color (a_color: EV_COLOR)
-- Make `color' have the same rgb values as `a_color' (copies the values)
require
color_exists: a_color /= Void
do
color.set_rgb (a_color.red, a_color.green, a_color.blue)
end
set_count (a_count: INTEGER)
-- Change the `count'
require
count_big_enough: a_count >= 0
do
count := a_count
end
feature -- Basic operations
forth
-- Increment the `step' up to a maximum of `count'
require
not_after: not is_after
do
distance := distance + 1
end
back
-- Decrement the `step' downn to a minimum of zero
require
not_before: not is_before
do
distance := distance - 1
end
finish
-- Move the the last position
do
distance := count
end
start
-- Move to the first position
do
distance := 1
end
feature -- Status report
is_before: BOOLEAN
-- Is the `step' before the range?
do
Result := distance = 0
end
is_after: BOOLEAN
-- Is the `step' greater than `count'
do
Result := distance > count
end
feature {NONE} -- Implementation
Lightest: REAL_32 = 0.8
-- The lightest value to which Current will fade
Darkest: REAL_32 = 0.2
-- The darkest value to which Current will fade
Grey: REAL_32 = 0.6
-- A medium value toward which Current can fade
invariant
color_exists: color /= Void
count_large_enough: count >= 0
end

View File

@ -0,0 +1,61 @@
note
description: "[
Used by {VIEW_MANAGER} as a place holder when it has
no other views.
]"
date: "29 Aug 03"
author: "Jimmy J. Johnson"
copyright: "Copyright 2012, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/views/default_view.e $"
date: "$Date: 2015-10-24 07:32:40 -0700 (Sat, 24 Oct 2015) $"
revision: "$Revision: 23 $"
class
DEFAULT_VIEW
inherit
VIEW
undefine
-- default_create,
copy
redefine
create_interface_objects,
initialize
end
EV_LABEL
rename
object_id as ise_object_id
undefine
is_in_default_state
redefine
create_interface_objects,
initialize
end
create
default_create
feature {NONE} -- Initialization
create_interface_objects
-- Create objects to be used by `Current' in `initialize'
-- Implemented by descendants to create attached objects
-- in order to adhere to void-safety due to the implementation bridge pattern.
do
Precursor {VIEW}
Precursor {EV_LABEL}
end
initialize
-- Set up the view
do
Precursor {VIEW}
Precursor {EV_LABEL}
set_text ("Default view")
end
end

View File

@ -0,0 +1,443 @@
note
description: "[
A {VIEW} for displaying an {EDITABLE} using it's `schema'
]"
date: "30 Mar 04"
author: "Jimmy J. Johnson"
copyright: "Copyright 2012, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/views/dialog_editor_view.e $"
date: "$Date: 2012-05-31 14:05:35 -0400 (Thu, 31 May 2012) $"
revision: "$Revision: 10 $"
class
DIALOG_EDITOR_VIEW
inherit
EV_STOCK_COLORS
rename
implementation as colors_implementation
export
{NONE} all
undefine
default_create,
is_equal,
copy
end
VIEW
rename
target_imp as record_imp,
target as record,
set_target as set_record
undefine
-- default_create,
copy,
is_equal
redefine
create_interface_objects,
initialize,
record_imp,
set_record,
draw
end
-- EV_CELL
EV_FRAME
undefine
is_in_default_state
redefine
create_interface_objects,
initialize
-- data, -- to make it inaplicable
-- set_data -- to make it inaplicable
end
create
default_create
feature {NONE} -- Initialization
create_interface_objects
-- Create objects to be used by `Current' in `initialize'
-- Implemented by descendants to create attached objects
-- in order to adhere to void-safety due to the implementation bridge pattern.
do
Precursor {VIEW}
Precursor {EV_FRAME}
create changed_controls.make
create controls.make
create save_actions
create control_select_actions
create scrollable_area
create time_drawn.from_seconds (0)
end
initialize
-- Create an editor view.
do
Precursor {EV_FRAME}
Precursor {VIEW}
extend (scrollable_area)
set_save_on_change
set_actions
end
set_actions
-- Add actions to the widgets
do
scrollable_area.item.drop_actions.extend (agent on_drop_editable)
end
feature -- Access
scrollable_area: EDITOR_SCROLL_AREA
schema: SCHEMA
-- Current schema in use by the editor.
require
has_schema: has_schema
do
check attached schema_imp as s then
Result := s
end
end
save_actions: EV_NOTIFY_ACTION_SEQUENCE
-- Actions to be performed after the record is saved.
control_select_actions: EV_NOTIFY_ACTION_SEQUENCE
-- Actions to be performed when a control is clicked.
feature -- Element change
set_record (a_record: like record)
-- Change `record' to `a_record'
-- Reload the data into the controls
do
Precursor {VIEW} (a_record)
draw
end
set_schema (a_schema: like schema)
-- Change `schema' to `a_schema'.
-- Uses the pattern described in feature `set_target' from VIEW to
-- add `a_schema' to the `object_set' (the set of objects contained
-- in this view) and removes the old schema (if it had one) from
-- the `object_set'.
-- Also, removes old/add new fields contained in `a_schema'.
do
-- Save the old `record'
if attached schema_imp as s and then s /= a_schema then
-- target_set.prune (s)
schema_imp := a_schema
-- target_set.extend (s)
draw
end
ensure
schema_assigned: schema = a_schema
-- contains_schema: target_set.has (a_schema)
-- old_schema_removed: (old schema /= Void) and (old schema /= schema) implies not target_set.has (old schema)
end
feature -- Basic operations
draw
-- Rebuild and show the view.
do
if has_schema then
if is_rebuild_needed then
build_controls
end
if record /= Void then
fill_controls
if attached schema as s and then record.has_schema (s) then
enable_controls
else
disable_controls
end
else
disable_controls
end
end
end
disable
-- Make the controls unresponsive to input.
do
is_user_disabled := True
end
enable
-- Make the controls responsive to input.
do
is_user_disabled := False
end
feature -- Status report
is_user_disabled: BOOLEAN
-- Has the user requested the controls to be disabled?
is_save_on_change: BOOLEAN
-- Are changes made in the controls automatically
-- saved to `record'? In other words, is `record'
-- updated anytime a change is made, or must it
-- be done manually with a call to `save_record'?
has_schema: BOOLEAN
-- Is a `schema' assigned to Current?
do
Result := attached schema_imp
end
feature -- Status setting
set_save_on_change
-- Make automatic updates to `record' whenever
-- a change is made in any control.
do
is_save_on_change := True
end
set_save_on_request
-- Require `save_record' to be called in order to
-- accept any changes make in any control.
do
is_save_on_change := False
end
feature -- Basic operations
disable_controls
-- Disable all controls.
local
c: CONTROL
do
from controls.start
until controls.exhausted
loop
c := controls.item
c.disable_sensitive
check attached c.parent as p then
p.set_foreground_color (Red)
p.propagate_foreground_color
end
controls.forth
end
end
enable_controls
-- Enable all controls.
local
c: CONTROL
do
from controls.start
until controls.exhausted
loop
c := controls.item
c.enable_sensitive
check attached c.parent as p then
p.set_foreground_color (Black)
p.propagate_foreground_color
end
controls.forth
end
end
feature {NONE} -- Implementation
build_controls
-- Create controls for each FIELD in `schema'.
require
schema_exists: schema /= Void
local
f: FIELD
c: CONTROL
do
check attached {EDITOR_FIXED} scrollable_area.item as ef then
-- Because `scrollable_area' is an {EDITOR_SCROLL_AREA}
-- which *should* hold an {EDITOR_FIXED}.
ef.wipe_out
controls.wipe_out
if attached schema as s then
from s.start
until s.exhausted
loop
f := s.field
c := f.as_widget
-- add actions to each control as it is created
c.valid_change_actions.extend (agent on_control_changed (c))
c.select_actions.extend (agent on_control_selected (c))
-- c.display.pointer_button_press_actions.force_extend (agent on_control_selected (c))
-- c.label.pointer_button_press_actions.force_extend (agent on_control_selected (c))
-- put the control into the fixed
ef.extend (c)
-- place the control in the correct spot
scrollable_area.position_control (c)
-- keep track of the control
controls.extend (c)
if is_user_disabled then
disable_controls
end
s.forth
end
if not is_user_disabled then
enable_controls
end
end
end
check attached schema as s then
time_drawn := s.time_modified.twin
end
end
save_record
-- Get the data from each control and put it into the
-- the record if the data is valid.
require
record_exitsts: record /= Void
local
dat: ANY -- for testing
con: CONTROL -- control
c: EDIT_COMMAND
do
from changed_controls.start
until changed_controls.off
loop
con := changed_controls.item
if con.is_display_valid and then not con.field.is_calculated then
dat := con.value
c := new_edit_command (record, con.field, con.value)
-- Disable drawing to keep this control from being updated
-- when the EDIT_COMMAND is executed.
disable_drawing
command_manager.add_command (c)
enable_drawing
end
changed_controls.forth
end
save_actions.call ([])
changed_controls.wipe_out
end
new_edit_command (a_record: like record; a_field: FIELD; a_value: ANY): EDIT_COMMAND
-- Used by `save_record' to get an EDIT_COMMAND
require
record_exists: record /= Void
do
create Result.make (a_record, a_field, a_value)
end
fill_controls
-- Put the data from the record into the corresponding control
require
record_exists: record /= Void
local
key: STRING
con: CONTROL
do
from
controls.start
until
controls.exhausted
loop
key := controls.item.field.label
con := controls.item
if attached record.value (key) as dat then
con.set_data (dat)
end
con.refresh
controls.forth
end
end
feature {CONTROL} -- implementation
on_drop_editable (a_editable: EDITABLE)
-- React to drop of `a_editable' on Current except if
-- it is a FIELD. (FIELDs are handled by FIELD_EDITOR_VIEW.)
-- Fix me !!! This makes the interface inconsistent by allowing a drop
-- of a type that is really not allowed.
require
editable_exists: a_editable /= Void
do
-- The `parent_tool' (a EDIT_TOOL) takes care of the special
-- case, when `a_editable' is a FIELD.
if attached parent_tool as pt then
pt.set_target (a_editable)
end
end
on_control_changed (a_control: CONTROL)
-- A change has been made to value in `a_control'
require
control_exists: a_control /= Void
do
changed_controls.extend (a_control)
if is_save_on_change then
save_record
disable_drawing
draw_views (record)
enable_drawing
end
end
on_control_selected (a_control: CONTROL)
-- React to `a_control' being selected.
require
control_exists: a_control /= Void
do
control_select_actions.call ([a_control])
end
feature {NONE} -- Implementation
controls: LINKED_SET [CONTROL]
-- All the controls in the pages.
changed_controls: LINKED_SET [CONTROL]
-- Controls whose data has changed since last save
is_rebuild_needed: BOOLEAN
-- Used internally to let `draw' know that the controls
-- need to be rebuilt, because the schema has changed
-- since the last call to `draw'. This prevents calling
-- `build_controls' (and unnecessarily recreating the
-- controls again) on every call to `draw'.
require
schema_exists: schema /= Void
do
check attached schema as s then
Result := time_drawn < s.time_modified
end
end
time_drawn: YMDHMS_TIME
-- The time the controls were last drawn.
-- This is used to allow the controls for a schema to be
-- redrawn only after the `schema' has changed, not every
-- time a new `record' is set.
-- Updated by `build_controls'.
record_imp: detachable EDITABLE
-- Detachable implementation of `target' for void-safety
schema_imp: detachable like schema
-- Detachable implementation of `schema'
feature {NONE} -- Inaplicable
-- data: ANY
-- -- Not to be used
--
-- set_data (a_data: like data) is
-- -- Not to be used
-- do
-- check
-- False
-- end
-- end
end

View File

@ -0,0 +1,191 @@
note
description: "[
A widget that can appear bright or dim
]"
author: "Jimmy J. Johnson"
deferred class
DIMABLE
inherit
ANY
redefine
default_create
end
feature -- Initialization
default_create
-- Set the default `dimming_level'
do
dimming_level := Dimmer
previous_dimming_level := Dimmest
end
feature -- Access
dimming_level: INTEGER_32
-- The amount colors will be dimmed
-- (One of `Dim', `Dimmer', or `Dimmest')
previous_dimming_level: INTEGER_32
-- Used to `restore' to the prior dimming level
Bright: INTEGER = 0
Normal: INTEGER_32 = 7
Dim: INTEGER = 10
Dimmer: INTEGER_32 = 15
Dimmest: INTEGER_32 = 20
feature -- Element change
set_dimming_level (a_level: like dimming_level)
-- Change the `dimming_level'
require
valid_level: a_level = Bright or a_level = Normal or a_level = Dim or
a_level = Dimmer or a_level = Dimmest
do
-- io.put_string ("DIMABLE.set_dimming_level -- ")
-- if attached {VITP_ITEM} Current as v then
-- io.put_string ("on " + v.name)
-- else
-- io.put_string (" on? " + generating_type)
-- end
-- io.put_string (" from " + previous_dimming_level.out)
-- io.put_string (" to " + dimming_level.out + "%N")
previous_dimming_level := dimming_level
dimming_level := a_level
end
feature -- Basic operations
restore_dimming_level
-- Set the `dimming_level' to the `previous_dimming_level'
do
set_dimming_level (previous_dimming_level)
end
feature -- Status report
is_bright: BOOLEAN
-- Should the resulting colors be "bright"?
do
Result := dimming_level = Bright
end
is_normal: BOOLEAN
-- Should the resulting colors be "normal"?
do
Result := dimming_level = Normal
end
is_dimmed: BOOLEAN
-- Should the resulting colors be "dim"?
do
Result := dimming_level = Dim
end
is_more_dimmed: BOOLEAN
-- Should the resulting colors be "dimmer"?
do
Result := dimming_level = Dimmer
end
is_completely_dimmed: BOOLEAN
-- Should the resulting colors be "dimmest"?
do
Result := dimming_level = Dimmest
end
feature -- Status setting
set_bright
-- Change the color dimming level to "bright
do
set_dimming_level (Bright)
end
set_normal
-- Change the `dimming_level' to "normal"
do
set_dimming_level (normal)
end
set_dimmed
-- Change the color dimming level to "dim"
do
set_dimming_level (Dim)
end
set_more_dimmed
-- Change the color dimming level to `Dimmer'
do
set_dimming_level (Dimmer)
end
set_completely_dimmed
-- Change the color dimming level to `Dimmest'
do
set_dimming_level (Dimmest)
end
feature -- Query
adjusted_color (a_color: EV_COLOR): EV_COLOR
-- A new color from `a_color' adjusted based on the `dimming_level'
require
color_exists: a_color /= Void
do
fader.set_color (a_color)
Result := fader.i_th_lighter (dimming_level)
end
dim_color (a_color: EV_COLOR): EV_COLOR
-- A new color based on `a_color' at a "faded" level
require
color_exists: a_color /= Void
do
fader.set_color (a_color)
Result := fader.i_th_lighter (Dim)
end
dimmer_color (a_color: EV_COLOR): EV_COLOR
-- A new color based on `a_color' at a "faded" level
require
color_exists: a_color /= Void
do
fader.set_color (a_color)
Result := fader.i_th_lighter (Dimmer)
end
dimmest_color (a_color: EV_COLOR): EV_COLOR
-- A new color based on `a_color' at a "faded" level
require
color_exists: a_color /= Void
do
fader.set_color (a_color)
Result := fader.i_th_lighter (Default_step_count)
end
feature {NONE} -- Implementation
fader: COLOR_FADER
-- Used to calculate a new color based on some initial color and dimming level
once
create Result
Result.set_count (Default_step_count)
end
Default_step_count: INTEGER_32 = 20
-- Number of variable color settings used in the `fader'
invariant
valid_dimming_level: dimming_level = Bright or
dimming_level = Normal or
dimming_level = Dim or
dimming_level = Dimmer or
dimming_level = Dimmest
end

View File

@ -0,0 +1,69 @@
note
description: "[
An special {DIALOG_EDITOR_VIEW} used to edit a {FIELD}
A {FIELD_SCHEMA} can not be created when a {FIELD} is created,
because, as Manu from ISE described, both {FIELD} and {SCHEMA}
would rely on the creation of the other, and an object would
be referenced before the created object was ever assigned to
the `Result' in `default_create'.
]"
date: "27 Feb 04"
author: "Jimmy J. Johnson"
copyright: "Copyright 2012, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/views/field_editor_view.e $"
date: "$Date: 2012-03-16 14:05:07 -0400 (Fri, 16 Mar 2012) $"
revision: "$Revision: 7 $"
class
FIELD_EDITOR_VIEW
inherit
DIALOG_EDITOR_VIEW
redefine
record_imp,
set_record,
new_edit_command
end
create
default_create
feature -- Element change
set_record (a_record: like record)
-- Change the `record'.
do
-- Redefined to ensure the `schema' for `a_record' is set.
-- It may alread be here, but not always.
-- Note that `draw' is called by Precursor.
set_schema (a_record.schema)
Precursor {DIALOG_EDITOR_VIEW} (a_record)
end
feature {NONE} -- Implementation (actions)
parent_schema: SCHEMA
-- The schema being editted by the `parent_tool' which
-- must be a EDIT_TOOL.
do
check attached {EDIT_TOOL} parent_tool as pt then
Result := pt.get_schema
end
end
new_edit_command (a_record: like record; a_field: FIELD; a_value: ANY): EDIT_SCHEMA_COMMAND
-- Used by `save_record' to get the correct type of command.
-- It is special for this type as it is a field that is
-- changing but the command affects a SCHEMA.
do
create Result.make (a_record, a_field, a_value)
Result.set_schema (parent_schema)
end
record_imp: detachable FIELD
-- Detachable implementation of `target' for void-safety
end

View File

@ -0,0 +1,151 @@
note
description: "[
A {VIEW} used to display the names of files as filtered
]"
date: "26 Jan 04"
author: "Jimmy J. Johnson"
copyright: "Copyright 2012, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/views/filename_view.e $"
date: "$Date: 2012-05-31 14:05:35 -0400 (Thu, 31 May 2012) $"
revision: "$Revision: 10 $"
class
FILENAME_VIEW
inherit
EV_VERTICAL_BOX
rename
object_id as ise_object_id
undefine
is_in_default_state
redefine
create_interface_objects,
initialize
end
VIEW
undefine
copy,
is_equal
redefine
create_interface_objects,
initialize,
draw
end
create
default_create
feature {NONE} -- Initialization
create_interface_objects
-- Create objects to be used by `Current' in `initialize'
-- Implemented by descendants to create attached objects
-- in order to adhere to void-safety due to the implementation bridge pattern.
do
Precursor {VIEW}
Precursor {EV_VERTICAL_BOX}
create browse_button
create directory_text
create file_list
browse_button.set_pixmap (create {EV_PIXMAP}.make_with_pixel_buffer (Icon_shell_color_buffer))
browse_button.set_tooltip ("{FILENAME_VIEW.Browse_button")
end
initialize
-- Create an editor view.
do
Precursor {EV_VERTICAL_BOX}
Precursor {VIEW}
extend (browse_button)
extend (directory_text)
extend (file_list)
disable_item_expand (browse_button)
disable_item_expand (directory_text)
set_actions
end
set_actions
-- Add actions to the widgets and view.
do
browse_button.select_actions.extend (agent on_browse_button_pressed)
directory_text.change_actions.extend (agent on_directory_text_changed)
end
feature {NONE} -- Actions
on_browse_button_pressed
-- React to a press of the browse button
do
directory_dialog.show_modal_to_window (parent_window)
end
on_directory_selected
-- React to a directory selection from the `directory_dialog'.
do
directory_text.set_text (directory_dialog.directory)
end
on_directory_text_changed
-- React to a change of the `directory_text'.
do
draw
end
feature -- Basic operations
draw
-- Redraw the view
local
d: DIRECTORY
lin: ARRAYED_LIST [STRING]
s, ext: STRING
i: EV_LIST_ITEM
p: EV_PIXMAP
do
file_list.wipe_out
create d.make_open_read (directory_text.text)
if d.exists then
lin := d.linear_representation
from lin.start
until lin.exhausted
loop
s := lin.item
ext := s.twin
ext.keep_tail (3)
if equal (ext, "ico") or equal (ext, "png") then
create p
p.set_with_named_file (directory_dialog.directory + "\" + s)
create i.make_with_text (s)
i.set_pixmap (p)
i.set_pebble (directory_dialog.directory + "\" + s)
file_list.extend (i)
end
lin.forth
end
end
d.close
end
feature {NONE} -- Implementation
browse_button: EV_BUTTON
-- To open a directory dialog
directory_text: EV_TEXT
-- To display the directory (or path).
file_list: EV_LIST
-- To display the filenames of the files
directory_dialog: EV_DIRECTORY_DIALOG
-- The standard direcory selection dialog.
once
create Result
Result.set_start_directory ("d:/eiffel54/studio/bitmaps/ico")
Result.ok_actions.extend (agent on_directory_selected)
end
end

View File

@ -0,0 +1,59 @@
note
description: "[
An EV_FIXED which is also a {VIEW}
]"
date: "12 Sep 03"
author: "Jimmy J. Johnson"
copyright: "Copyright 2012, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/views/fixed_view.e $"
date: "$Date: 2015-10-24 07:32:40 -0700 (Sat, 24 Oct 2015) $"
revision: "$Revision: 23 $"
class
FIXED_VIEW
inherit
VIEW
undefine
-- default_create,
copy,
is_equal
redefine
create_interface_objects,
initialize
end
EV_FIXED
rename
object_id as ise_object_id
undefine
is_in_default_state
redefine
create_interface_objects,
initialize
end
create
default_create
feature {NONE} -- Initialization
create_interface_objects
-- Create objects to be used by `Current' in `initialize'
-- Implemented by descendants to create attached objects
-- in order to adhere to void-safety due to the implementation bridge pattern.
do
Precursor {VIEW}
Precursor {EV_FIXED}
end
initialize
-- Create an editor view.
do
Precursor {EV_FIXED}
Precursor {VIEW}
end
end

View File

@ -0,0 +1,57 @@
note
description: "[
A {VIEW} that is also an {EV_HORIZONTAL_SPLIT_AREA}
]"
author: "Jimmy J. Johnson"
copyright: "Copyright 2012, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/views/horizontal_split_view.e $"
date: "$Date: 2015-10-24 07:32:40 -0700 (Sat, 24 Oct 2015) $"
revision: "$Revision: 23 $"
class
HORIZONTAL_SPLIT_VIEW
inherit
EV_HORIZONTAL_SPLIT_AREA
undefine
is_in_default_state
redefine
create_interface_objects,
initialize
end
VIEW
undefine
-- default_create,
copy
redefine
create_interface_objects,
initialize
-- draw
end
create
default_create
feature {NONE} -- Initialization
create_interface_objects
-- Create objects to be used by `Current' in `initialize'
-- Implemented by descendants to create attached objects
-- in order to adhere to void-safety due to the implementation bridge pattern.
do
Precursor {VIEW}
Precursor {EV_HORIZONTAL_SPLIT_AREA}
end
initialize
-- Set up the widget
do
Precursor {VIEW}
Precursor {EV_HORIZONTAL_SPLIT_AREA}
draw
end
end

View File

@ -0,0 +1,62 @@
note
description: "[
A {VIEW} combined with an EV_DRAWING_AREA
]"
author: "Jimmy J. Johnson"
copyright: "Copyright 2012, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/views/jj_drawing_area_view.e $"
date: "$Date: 2012-11-27 20:19:38 -0500 (Tue, 27 Nov 2012) $"
revision: "$Revision: 13 $"
class
JJ_DRAWING_AREA_VIEW
inherit
EV_DRAWING_AREA
undefine
is_in_default_state
redefine
create_interface_objects,
initialize
end
VIEW
undefine
copy
redefine
create_interface_objects,
initialize,
add_actions
end
create
default_create
feature {NONE} -- Initialization
create_interface_objects
-- Create objects to be used by `Current' in `initialize'
-- Implemented by descendants to create attached objects
-- in order to adhere to void-safety due to the implementation bridge pattern.
do
Precursor {VIEW}
Precursor {EV_DRAWING_AREA}
end
initialize
-- Set up the widget
do
Precursor {VIEW}
Precursor {EV_DRAWING_AREA}
-- set_actions
end
add_actions
do
resize_actions.force_extend (agent draw)
expose_actions.force_extend (agent draw)
end
end

View File

@ -0,0 +1,121 @@
note
description : "[
This class ties together the concept of EV_FIGURE_WORLD, EV_DRAWING_AREA,
and EV_DRAWING_AREA_PROJECTOR in a simpler interface.
In order to fake out Eiffel Vision to allow a widget to be decreased in
size (I call this the `set_minimum_size' problem'), the drawing
area is contained in an EV_FIXED allowing the drawing area's size
to follow that of the fixed, and thereby, indirectly the size of the
parent window.
While this worked for the editor classes it does not seem to work here.
I don't know why. Is the problem with `resize_fixed' or with the fact
that, in the graphics program where it is used, I am also using the
"jj_vision" classes. Perhaps the problem is there.???
]"
date: "27 Sep 03"
author: "Jimmy J. Johnson"
copyright: "Copyright 2012, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/views/jj_figure_world_view.e $"
date: "$Date: 2012-05-31 14:05:35 -0400 (Thu, 31 May 2012) $"
revision: "$Revision: 10 $"
class
JJ_FIGURE_WORLD_VIEW
inherit
EV_FRAME
undefine
is_in_default_state
redefine
create_interface_objects,
initialize
end
VIEW
undefine
-- default_create,
copy
redefine
create_interface_objects,
initialize,
draw
end
create
default_create
feature {NONE} -- Initialization
create_interface_objects
-- Create objects to be used by `Current' in `initialize'
-- Implemented by descendants to create attached objects
-- in order to adhere to void-safety due to the implementation bridge pattern.
do
Precursor {VIEW}
Precursor {EV_FRAME}
create fixed
create world
create drawing_area
create projector.make (world, drawing_area)
end
initialize
-- Set up the widget
do
Precursor {VIEW}
Precursor {EV_FRAME}
extend (drawing_area)
set_actions
-- draw
end
set_actions
do
resize_actions.force_extend (agent draw)
drawing_area.expose_actions.force_extend (agent draw)
end
feature -- Access
world: EV_FIGURE_WORLD
-- World which Current will manipulate.
drawing_area: EV_DRAWING_AREA
-- Area on which `world' will be projected.
-- It is contained within a `fixed' area of Current.
-- Exported to allow direct drawing on it.
feature -- Element change
set_world (a_world: EV_FIGURE_WORLD)
-- Change the `world' of figures to be displayed
require
world_exists: a_world /= Void
do
world := a_world
projector.set_world (a_world)
end
feature {NONE} -- Drawing / Refresh operations
draw
-- Build the view
do
drawing_area.clear
if projector /= Void then
projector.full_project
end
end
feature {NONE} -- Implementation
projector: EV_DRAWING_AREA_PROJECTOR
-- For projecting the world onto the drawing area.
fixed: EV_FIXED
-- Container placed in the EV_FRAME to control size of `drawing_area'.
end

View File

@ -0,0 +1,77 @@
note
description : "[
A scrollable drawing area (i.e. an {EV_MODEL_WORLD_CELL} that
is a {VIEW}.
]"
author: "Jimmy J. Johnson"
class
JJ_MODEL_WORLD_CELL_VIEW
inherit
VIEW
undefine
-- default_create,
copy,
is_equal
redefine
create_interface_objects,
initialize,
draw
end
EV_MODEL_WORLD_CELL
undefine
is_in_default_state
redefine
create_interface_objects,
initialize
end
create
make
feature {NONE} -- Initialization
create_interface_objects
-- Create objects to be used by `Current' in `initialize'
-- Implemented by descendants to create attached objects
-- in order to adhere to void-safety due to the implementation bridge pattern.
do
-- Must create `world' because not calling `make_with_world'
create world
Precursor {EV_MODEL_WORLD_CELL}
Precursor {VIEW}
is_autoscroll_enabled := true
end
initialize
-- Set up by calling both precursor versions
do
Precursor {EV_MODEL_WORLD_CELL}
Precursor {VIEW}
end
feature -- Basic operations
add_model (a_model: JJ_MODEL_WORLD_VIEW)
-- Add `a_model' to the `world' and set
-- the `parent' of `a_model'
do
world.extend (a_model)
a_model.set_parent_view (Current)
end
feature {NONE} -- Drawing / Refresh operations
draw
-- Build the view
do
drawing_area.clear
if projector /= Void then
projector.full_project
end
end
end

View File

@ -0,0 +1,100 @@
note
description: "[
An {EV_MODEL_WORLD} that is also a {VIEW}.
It is a group of figures that allow redraws through the {VIEW}
class interface (e.g. when the underlying object model changes,
the views displaying that object can be redrawn.)
]"
author: "Jimmy J. Johnson"
date: "$Date$"
revision: "$Revision$"
class
JJ_MODEL_WORLD_VIEW
inherit
VIEW
redefine
-- default_create,
create_interface_objects,
draw
end
EV_MODEL_WORLD
redefine
default_create,
create_interface_objects
end
create
make
create {JJ_MODEL_WORLD_VIEW}
list_make
feature {NONE} -- Initialization
default_create
-- Standard creation procedure, added to align with the pattern
-- used by `default_create' from {EV_ANY}.
-- Remember, `make' from {VIEW} calls `default_create', which
-- in {EV_ANY} calls both `create_interface_objects' and later
-- `initialize'. However, `default_create' from {EV_MODEL_WORLD}
-- does NOT call `initialize'.
do
-- Precursor eventually calls `create_interface_objects'
Precursor {EV_MODEL_WORLD}
-- now, also call `initialzie'
initialize
end
create_interface_objects
-- Create objects to be used by `Current' in `initialize'.
-- Called by `defult_create'.
-- Implemented by descendants to create attached objects
-- in order to adhere to void-safety due to the implementation
-- bridge pattern.
do
Precursor {VIEW}
Precursor {EV_MODEL_WORLD}
end
feature -- Element change
parent: detachable EV_CONTAINER
-- Parent of the current view.
-- To be effected by joining with an EV_ class.
-- An {EV_MODEL_WORLD} as a descendent of {EV_MODEL} is to be
-- extended into an {EV_MODEL_WORLD_CELL}, which is an {EV_CONTAINER},
-- but there seems to be no way to determine this container.
do
check
do_not_call: False then
-- because can not return what is expected.
end
end
is_destroyed: BOOLEAN
-- Has the view been destroyed?
-- This will be joined with an EV_WIDGET feature.
-- See comment for feature `parent'.
do
-- check
-- do_not_call: False then
-- -- because can not return what is expected.
-- end
Result := false
end
feature -- Basic operations
draw
-- Redraw the window
do
-- world.wipe_out
-- world.full_redraw
Precursor {VIEW}
end
end

Some files were not shown because too many files have changed in this diff Show More