505 Commits

Author SHA1 Message Date
Axel Dörfler
9993df0f2a Connected the font size menu. "Fit" doesn't work yet, though.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6746 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-26 04:47:39 +00:00
Axel Dörfler
b607d18b74 Now also send a selection update notice if the contents have changed.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6745 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-26 04:35:35 +00:00
Axel Dörfler
7e55eac336 Added a simple image/icon view for the attributes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6744 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-26 03:53:05 +00:00
Axel Dörfler
609442f8f8 Moved the B_COPY code into a separate function. Implemented B_PASTE.
Now also changes the selection to the cursor position in the hex editor when
you change the first part of the byte.
No need to hold the editor lock for Replace().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6743 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-26 02:05:41 +00:00
Axel Dörfler
02f331d59c We no longer need to hold the editor lock for DataEditor::Replace().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6742 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-26 02:00:38 +00:00
Axel Dörfler
ee24db11e1 Added some argument bound checks in Replace() and SetViewOffset().
Replace(), Insert(), and Remove() now locks the editor themselves.
ReplaceChange::Normalize() corrected the size for the right reason in a wrong way.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6741 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-26 01:59:42 +00:00
Axel Dörfler
35f497aa98 Now maintains the Selection/Native/Swapped menu items (which contain the
block position where the currently selected bytes would point to).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6740 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-25 17:39:01 +00:00
Axel Dörfler
32d3a4554d Added a method to access DataView's internal buffer.
Implemented editing functionality for both focus types.
Optimized InvalidateRange() if the update spans over the whole view.
Now resets the cursor position/selection when the editor offset changed.
UpdateFromEditor() now takes the range of the size into account.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6739 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-25 17:36:12 +00:00
Axel Dörfler
4897914eca Accidently added only an int32 for the size, not an int64.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6738 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-25 15:25:07 +00:00
Axel Dörfler
51f0d53048 "int32 * uint32" doesn't give what I wanted (the "previous block" function
was broken).
"Write" had the wrong shortcut (and I already wondered...).
The PositionSlider now correctly disables itself when it's not needed. Added
some nice disabled drawings for the slider bar.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6737 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-25 00:54:39 +00:00
Axel Dörfler
7d7f16ac72 The AttributeWindow has now possibly two editors, one raw editor (the
standard ProbeView), and one type editor. Started to implemented different
type editors, so far we have: BooleanEditor, StringEditor (not yet fully
working), NumberEditor, and MimeTypeEditor (not complete).
Needed to trick quite a bit to get BTabView to do what I want, since we
cannot detach the ProbeView without losing all of its menus.
All editor views share one backend DataEditor object, so everything is
synchronized and updated automatically.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6736 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-24 17:03:44 +00:00
Axel Dörfler
d426c2b9ea Now maintains the state of the undo/redo menu items.
Fixed the size limits when the view is buried a bit deeper in the hierarchy.
Tried to disable the slider when it's of no use, but it has no effect...


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6735 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-24 16:59:15 +00:00
Axel Dörfler
4886c973ab Now has Undo/Redo support.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6734 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-24 16:56:47 +00:00
Axel Dörfler
66fcb84e31 Now maintains the undo/redo state watcher, and also the data update
containing the range of affected bytes.
Added missing initialization of fLastChange and fFirstChange.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6733 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-24 16:54:28 +00:00
Axel Dörfler
36a7951646 Added two more menu items "Save" (non-functional) and "Remove from File"
(working).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6717 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-24 09:40:01 +00:00
Axel Dörfler
e9e26839cc ProbeView now monitors attribute changes of its file (and update its attributes menu).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6716 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-24 09:37:15 +00:00
Axel Dörfler
902673ec27 The settings are now also always saved in little endian.
When the settings are loaded, all parameters are checked for validity.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6715 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-24 09:07:57 +00:00
Axel Dörfler
7fff3ed096 Implemented R5 compatible settings.
The number base type (hex or decimal) and the window frame is already
correctly maintained (font size is only displayed, but not yet changed).
I don't know the meaning of the last 4 bytes in DiskProbe_data, but
it's probably not that bad.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6714 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-24 08:52:35 +00:00
Axel Dörfler
d11ec0829b Implemented initial attribute support.
ProbeWindow is now the base class for FileWindow and AttributeWindow.
Currently, attribute window has no special additional controls, but that will come.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6713 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-24 07:24:05 +00:00
Axel Dörfler
595bb3098e Implemented initial attribute support.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6712 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-24 07:21:11 +00:00
Axel Dörfler
32069a88fa Made the attribute type accessible read-only.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6711 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-24 07:15:56 +00:00
Axel Dörfler
9ee2211f9a Ignored the file size - it would have shown imaginary contents of a file
in its last block.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6710 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-24 04:36:14 +00:00
Axel Dörfler
84a09d60e1 No longer takes an attribute for a file, or a device for an attribute.
Implemented attribute support.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6709 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-24 04:32:01 +00:00
Axel Dörfler
a0858e6e27 Now correctly displays the block size of the file (didn't round up).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6708 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-24 04:29:23 +00:00
Axel Dörfler
cf54799833 Now maintains the "Paste" menu item - it is enabled/disabled when there
is data available in the clipboard or not. "Copy" and "Select All" now
work.
All position updates are now handled by a separate looper class (UpdateLooper),
and are actually applied at the editor. UpdateLooper will send a kMsgUpdateData
to its target synchronously when necessary. Seeking a file now works nicely
and very smooth.
HeaderView::MessageReceived() and UpdateLooper::MessageReceived() only
consider the most current update message for kMsgSliderUpdate resp.
kMsgPositionUpdate.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6707 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-24 03:39:23 +00:00
Axel Dörfler
6a3227322b Added a selection observer notice (in addition to cursor position).
Now listens to B_SELECT_ALL, and B_COPY.
B_COPY copies the selection as "application/octect-stream" and, if
it's a valid ASCII string, also as "text/plain".


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6706 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-24 03:33:14 +00:00
Axel Dörfler
0e3cec8c6d Moved the message/notice constants to the bottom.
Added a message that initiates a data update from the editor.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6705 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-24 03:30:22 +00:00
Axel Dörfler
053bb7380a Added a UpdateIfNeeded() method that you can call when you are not
interested in the data at all.
No longer imitates the BHandler observer model, but directly send
its update messages to the observers.
Now also stores the entry_ref of the file/device in the editor.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6704 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-24 03:27:45 +00:00
Axel Dörfler
d2adccea19 Rotate what? Added degree symbol.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6638 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-18 16:05:11 +00:00
Axel Dörfler
fec798f4df The HeaderView now tracks the current position itself, and also maintains
the last position. The "next", "previous", and "back" position changing
menu items do now work.
Cleaned up target notification for the HeaderView.
"Block/Write" accidently had the wrong short-cut.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6637 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-18 16:00:36 +00:00
Axel Dörfler
075968bf03 Now has one central DataBounds() method that's used by GetPreferredSize()
and others.
MouseMoved() no longer passes an invalid position to SetSelection() (avoiding
the selection to be changed unexpectedly). It will now also make sure that the
position hovered by the mouse is visible.
PositionAt() no longer skips points that are not inside the valid bounds (even
the wrong bounds), but clips the point to be inside of it.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6636 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-18 15:02:31 +00:00
Axel Dörfler
602992140d Implemented proper focus handling in DataView instead of forcing focus
whenever the window got activated.
New DataView::MakeVisible() makes sure the specified position is visible
in the view, and scrolls to it if not (both, horizontally and vertically).
Implemented cursor navigation and selection extension in the DataView class.
Fixed a bug in DataView::SetSelection() that could let slip through invalid
values.
Renamed DataEditor observer notices.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6634 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-18 14:37:09 +00:00
Axel Dörfler
d556aa00c8 Moved the forced focus out of the DataView and into the ProbeView, since
that should not be the default behaviour of the DataView class.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6633 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-18 14:31:23 +00:00
Axel Dörfler
b797c2778b The cursor position is now correctly maintained in the HeaderView as well.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6631 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-18 12:26:18 +00:00
Axel Dörfler
6a2a85f498 The PositionSlider can now use the original slider bar when DRAW_SLIDER_BAR
is not defined.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6630 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-18 12:11:20 +00:00
Axel Dörfler
b95c3b6860 The PositionSlider no longer allows to go beyond the last block (starting
with 0!) by one. Also, SetFileSize() now checks if the position is within
valid bounds.
The device offset is now correctly maintained (it also adds the view offset).
The view offset is now taken into account, too (but it doesn't yet get any
updates from the DataView).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6625 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-18 04:34:04 +00:00
Axel Dörfler
15fef5f790 Too bad the DataEditor did not report the correct size for devices... :)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6624 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-18 04:20:44 +00:00
Axel Dörfler
5475e6e54c The header view is now completely working. The position control accepts
decimal, hexadecimal, and octal values (it is using strtoll(..., 0);)
Setting the number base type does now work, too.
Updated the Slider class to a PositionSlider class that creates the
illusion of supporting off_t values - almost (see note in Position()).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6623 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-18 03:34:10 +00:00
Axel Dörfler
e805d89711 Added support for different number bases in the offset column.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6622 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-18 03:28:37 +00:00
Axel Dörfler
f7efc8f447 The DataEditor class is now subclasses from BLocker instead of aggregating
it. This way, it can directly be used in the BAutolock class, and also provides
some more sophisticated locking functions.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6621 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-18 02:31:48 +00:00
Axel Dörfler
04d3a3dedf Now can also retrieve the size of a disk device.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6619 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-18 02:05:31 +00:00
Axel Dörfler
4a66542685 The scroll bars now work correctly.
Mouse wheel support added.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6572 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-12 22:57:27 +00:00
Axel Dörfler
bf74bb653a Implemented the selection code.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6571 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-12 20:38:57 +00:00
Axel Dörfler
8b6c387e95 Fixed the wrong return type of ViewSize().
Reduced the number of state message types.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6570 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-12 20:33:46 +00:00
Axel Dörfler
90828ad15d Changed the ConvertLine() method to produce almost exactly the same
output as the original DiskProbe.
fFontSize and fAscent are now automatically maintained when the font
size is changed. Rendering improved (spacing and location).
The maximum window size is now set to contain the whole data view.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6569 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-12 04:21:33 +00:00
Axel Dörfler
bc005359f2 Now contains the DataEditor for the file.
No longer uses the node monitoring itself, but the watching mechanism
provided by the DataEditor (it now even does this at the right place).
Removed some variables now maintained by the DataEditor.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6568 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-12 03:09:22 +00:00
Axel Dörfler
990e75bacf Started to implement the DataView class that will be the view to the editor.
For your entertaining it already shows the first block of the file/device.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6567 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-12 03:07:15 +00:00
Axel Dörfler
f748e2d460 Extended watching mechanism (it now works more like the BHandler watching
mechanism) - it's not really used yet, though.
Fixed some variable initialization bugs and missing return values.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6566 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-12 03:00:56 +00:00
Axel Dörfler
632ef26708 The OpenWindow now accepts file drops (i.e. from Tracker) and automatically
opens these files.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6565 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-12 02:58:48 +00:00
Axel Dörfler
bc2c92cd36 Removed no longer used code (was only there for testing purposes of the DataEditor).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6564 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-12 02:57:30 +00:00