History log of /haiku/src/apps/diskprobe/DataView.h
Revision Date Author Comments
# e85413ad 02-Nov-2018 Axel Dörfler <axeld@pinc-software.de>

DiskProbe: Coding style cleanup

* Not complete, no functional changes intended.


# d0f27e41 11-May-2015 Axel Dörfler <axeld@pinc-software.de>

DiskProbe: improved initial window size.

* Also some automatic whitespace cleanup.


# a1e032c8 10-Nov-2014 Adrien Destugues <pulkomandy@gmail.com>

DiskProbe: rewrite to use layout code.

The main goal is to use a layout aware tab view in the attribute editor
window, removing some hacks that caused #10480.


# 8bc239bc 21-Jan-2009 Axel Dörfler <axeld@pinc-software.de>

* Resolved a TODO and implemented an is_valid_utf8() function that replaces the
former is_valid_ascii(). This function is now also exported in the header.
* Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28975 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 56904be5 15-Dec-2004 Axel Dörfler <axeld@pinc-software.de>

The DataView can now also accept drop messages from others and itself; the
mouse is tracked when you're dragging over the view, and the affected area
is selected.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10470 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8e9afca7 15-Dec-2004 Axel Dörfler <axeld@pinc-software.de>

Started implementing drag&drop - for now, you can drag contents out of the
DiskProbe window only. Only ASCII clippings will contain "text/plain" data,
so don't be surprised if Tracker sometimes doesn't create a clipping file
(if you drop on Tracker).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10465 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 247c7599 08-Dec-2004 Axel Dörfler <axeld@pinc-software.de>

The block selection is now drawn incrementally if possible which removes flicker.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10380 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d9e5697c 25-May-2004 Axel Dörfler <axeld@pinc-software.de>

Selection changes via keyboard no longer copy DiskProbe's original behaviour,
but can be done like in BTextView.
Fixed a strange drawing bug that could happen on startup (R5): IsFocus()
could return false, even if the view had focus.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7646 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5d8680c0 27-Feb-2004 Axel Dörfler <axeld@pinc-software.de>

Added a message to change the selection.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6788 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0a39d7d6 27-Feb-2004 Axel Dörfler <axeld@pinc-software.de>

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


# a7511f36 26-Feb-2004 Axel Dörfler <axeld@pinc-software.de>

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


# 609442f8 25-Feb-2004 Axel Dörfler <axeld@pinc-software.de>

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


# 32d3a455 25-Feb-2004 Axel Dörfler <axeld@pinc-software.de>

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


# 7fff3ed0 24-Feb-2004 Axel Dörfler <axeld@pinc-software.de>

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


# 9ee2211f 23-Feb-2004 Axel Dörfler <axeld@pinc-software.de>

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


# 0e3cec8c 23-Feb-2004 Axel Dörfler <axeld@pinc-software.de>

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


# 075968bf 18-Feb-2004 Axel Dörfler <axeld@pinc-software.de>

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


# 60299214 18-Feb-2004 Axel Dörfler <axeld@pinc-software.de>

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


# b797c277 17-Feb-2004 Axel Dörfler <axeld@pinc-software.de>

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


# e805d897 17-Feb-2004 Axel Dörfler <axeld@pinc-software.de>

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


# 4a665426 12-Feb-2004 Axel Dörfler <axeld@pinc-software.de>

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


# bf74bb65 12-Feb-2004 Axel Dörfler <axeld@pinc-software.de>

Implemented the selection code.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6571 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 90828ad1 11-Feb-2004 Axel Dörfler <axeld@pinc-software.de>

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


# 990e75ba 11-Feb-2004 Axel Dörfler <axeld@pinc-software.de>

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


# d0f27e418ffc7c3ef34e74899a450b6caf758eb6 11-May-2015 Axel Dörfler <axeld@pinc-software.de>

DiskProbe: improved initial window size.

* Also some automatic whitespace cleanup.


# a1e032c8759a701911e7946dfafab713cdf7bb35 10-Nov-2014 Adrien Destugues <pulkomandy@gmail.com>

DiskProbe: rewrite to use layout code.

The main goal is to use a layout aware tab view in the attribute editor
window, removing some hacks that caused #10480.


# 8bc239bc55c023254f4526c03b3a4bcd05c97705 21-Jan-2009 Axel Dörfler <axeld@pinc-software.de>

* Resolved a TODO and implemented an is_valid_utf8() function that replaces the
former is_valid_ascii(). This function is now also exported in the header.
* Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28975 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 56904be5167c10e26398d0deec6ae849edb8e9f8 15-Dec-2004 Axel Dörfler <axeld@pinc-software.de>

The DataView can now also accept drop messages from others and itself; the
mouse is tracked when you're dragging over the view, and the affected area
is selected.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10470 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8e9afca70f0bcb2484b73e4d5cba031f83ce4bd7 15-Dec-2004 Axel Dörfler <axeld@pinc-software.de>

Started implementing drag&drop - for now, you can drag contents out of the
DiskProbe window only. Only ASCII clippings will contain "text/plain" data,
so don't be surprised if Tracker sometimes doesn't create a clipping file
(if you drop on Tracker).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10465 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 247c75991ca2fee393a4075b6c21570a3ee7a46a 08-Dec-2004 Axel Dörfler <axeld@pinc-software.de>

The block selection is now drawn incrementally if possible which removes flicker.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10380 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d9e5697c73d6b29cecb754cf1ff3e4e28cad68df 25-May-2004 Axel Dörfler <axeld@pinc-software.de>

Selection changes via keyboard no longer copy DiskProbe's original behaviour,
but can be done like in BTextView.
Fixed a strange drawing bug that could happen on startup (R5): IsFocus()
could return false, even if the view had focus.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7646 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5d8680c0bb89588fe9d2b47f845a79a221af7a65 27-Feb-2004 Axel Dörfler <axeld@pinc-software.de>

Added a message to change the selection.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6788 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0a39d7d615d7f7e595f6072fe62ee3d48bb57ef0 27-Feb-2004 Axel Dörfler <axeld@pinc-software.de>

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


# a7511f36548f2c94f7889f809e274753e4ef09c2 26-Feb-2004 Axel Dörfler <axeld@pinc-software.de>

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


# 609442f8f8e23eb74c91a28122c47901318ea257 25-Feb-2004 Axel Dörfler <axeld@pinc-software.de>

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


# 32d3a4554d8febe3c0b7b58600bc5ff9ec795f3c 25-Feb-2004 Axel Dörfler <axeld@pinc-software.de>

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


# 7fff3ed096826c2efe41f10c2fea71a5e0b4656f 24-Feb-2004 Axel Dörfler <axeld@pinc-software.de>

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


# 9ee2211f9a32baca1bcc1d28d474cf7ec812192b 23-Feb-2004 Axel Dörfler <axeld@pinc-software.de>

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


# 0e3cec8c6db4ffee443508aecce2d223b4300f35 23-Feb-2004 Axel Dörfler <axeld@pinc-software.de>

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


# 075968bf034c4246edc7d9203d1ddb9ad5c1f591 18-Feb-2004 Axel Dörfler <axeld@pinc-software.de>

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


# 602992140d69561077b9fafbdc49272fa30cdf41 18-Feb-2004 Axel Dörfler <axeld@pinc-software.de>

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


# b797c2778bd839cadcb4f594408bc693d5d79117 17-Feb-2004 Axel Dörfler <axeld@pinc-software.de>

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


# e805d89711f54937624a70f0fd8b0cf0790c1031 17-Feb-2004 Axel Dörfler <axeld@pinc-software.de>

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


# 4a665426852e1490193317aeec0f2ee2882a027f 12-Feb-2004 Axel Dörfler <axeld@pinc-software.de>

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


# bf74bb653ab7ea644e07d7e62efa60b276b26295 12-Feb-2004 Axel Dörfler <axeld@pinc-software.de>

Implemented the selection code.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6571 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 90828ad15df5eaeac9cb26bfadecb22e2f627506 11-Feb-2004 Axel Dörfler <axeld@pinc-software.de>

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


# 990e75bacfda7e70eb17d29e6437567657f154cd 11-Feb-2004 Axel Dörfler <axeld@pinc-software.de>

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