778 Commits

Author SHA1 Message Date
Axel Dörfler
41f353fdb0 The ProbeWindow (base class for FileWindow and AttributeWindow) will now
pass B_SIMPLE_DATA messages to the application but relabel them as
B_REFS_RECEIVED first.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6779 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-27 21:31:07 +00:00
Axel Dörfler
01f3fea56c The DataEditor always starts in the device native block size or 512 for all
other file types, but the block size menu didn't take that into account, it
always showed "512" to be active when started.
Also, if the DataEditor has a block size that is not yet part of the block
size menu, it will be added and made current.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6778 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-27 20:21:11 +00:00
Axel Dörfler
383a3578d0 Removed debug output.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6777 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-27 20:19:30 +00:00
Axel Dörfler
8514048790 Added the ability to merge changes. That means undo/redo now have a
handier granularity.
ReplaceChange will now try to merge with the next ReplaceChange if they
are adjacent.
Fixed compilation with tracing enabled.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6776 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-27 19:57:45 +00:00
Axel Dörfler
768673c687 Changed the default button to remove the attribute, as that's a bit more
convenient and actually shows some trust in the users decision :-)
Also changed the text to make clear that this action is not covered by
the undo functionality.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6775 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-27 19:02:36 +00:00
Axel Dörfler
fe8682ea45 Implemented the bookmark menu.
Added a possible "block" member for the kMsgPositionUpdate message.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6774 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-27 18:41:33 +00:00
Axel Dörfler
0a39d7d615 ProbeView accidently didn't listen to kDataViewPreferredSize events.
Implemented the "Fit" font size setting.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6773 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-27 17:14:53 +00:00
Axel Dörfler
a7511f3654 Implemented changing the block size - that caused several changes to
DataEditor::SetViewSize()/SetViewOffset() because they did not correctly
update some values under certain circumstances.
There is now a kMsgDataEditorParameterChange instead of just ...OffsetChange;
the message will contain information about what has changed exactly.
Added a new kDataViewPreferredSize notifier that indicates a change of
the preferred size of the DataView. The ProbeView now listens to that
instead of knowing when to update the window limits.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6772 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-27 02:51:48 +00:00
Axel Dörfler
def5f759cb Save() actually always displayed an error requester, even if there was no error.
Started working on the block size menu.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6771 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-26 20:18:33 +00:00
Axel Dörfler
124640857d Now made the kSignature constant accessible in an appropriate way.
Implemented the print view stuff (as borrowed from ShowImage). Not yet tested
because the print_server is funny today over here...


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6770 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-26 20:09:11 +00:00
Axel Dörfler
aa60f34665 Added the nice "Open File" recent documents menu.
Moved the DiskProbe application signature constant into the DiskProbe.h header file.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6769 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-26 19:38:14 +00:00
Axel Dörfler
0adaff854a Now checks if there are any outstanding changes in the editor when the
window is closed.
Also, it now reports errors from the save operation if there were any.
Enabled the "Print" and "Page Setup" menu items.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6767 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-26 19:15:37 +00:00
Axel Dörfler
79681755a6 StateWatcher now only sends the update message if some state actually has changed.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6766 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-26 18:26:50 +00:00
Axel Dörfler
2aa201551a ApplyChanges() didn't always work correctly. Save() could crash with a
wrong index to the fChanges list.
Added the compile time possibility to trace the data editor changes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6765 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-26 18:18:28 +00:00
Axel Dörfler
923dddc23d The HeaderView now checks the position before it propagates it for kMsgPositionUpdate.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6764 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-26 18:16:10 +00:00
Axel Dörfler
a4ce63bfc4 Implemented Save() functionality. ApplyChanges() can now create the editor
version of the file from any state.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6763 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-26 16:41:09 +00:00
Axel Dörfler
c0ced84a62 The Save/Print menu items of the ProbeView were added too soon, so that
BInvoker::SetTarget() could not work yet (before the view was added to
the window).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6762 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-26 16:36:08 +00:00
Axel Dörfler
c4473afbd1 Now maintains the state of the "Save" menu item.
It will now call DataEditor::Save() in B_SAVE_REQUESTED, but it doesn't yet
notify the user on errors (other then printing them to stdout).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6761 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-26 16:33:48 +00:00
Axel Dörfler
c65f61d4ad Added a StateWatcher class that will automatically send notices for
all changed states during the lifetime of the object upon destruction.
Added some comments.
Uncommented the IsModified() method (does not yet work correctly, though).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6760 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-26 15:18:02 +00:00
Axel Dörfler
35789209bd Removed the MIME type picker from the MimeTypeEditor - it was not yet finished
anyway, and I think it doesn't really belong to this app's realm.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6759 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-26 13:04:55 +00:00
Axel Dörfler
6781cbdc9b Removed the "Block/Write" menu item, and introduced new "Save" menu items;
they are not yet working, though.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6756 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-26 12:54:51 +00:00
Axel Dörfler
c7a76e9f26 Moved the attribute editors into a separate file.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6755 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-26 12:41:23 +00:00
Axel Dörfler
707aa753f3 Removed DataEditor::SetToAttribute() method.
DataEditor::InitCheck() is now properly working for all types.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6747 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-26 05:03:38 +00:00
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