[Scummvm-cvs-logs] SF.net SVN: scummvm: [28156] scummex/branches/gsoc2007-gameresbrowser
zbychs at users.sourceforge.net
zbychs at users.sourceforge.net
Sat Jul 21 18:28:32 CEST 2007
Revision: 28156
http://scummvm.svn.sourceforge.net/scummvm/?rev=28156&view=rev
Author: zbychs
Date: 2007-07-21 09:28:32 -0700 (Sat, 21 Jul 2007)
Log Message:
-----------
Improved Hex View. Should be quite useful now.
Modified Paths:
--------------
scummex/branches/gsoc2007-gameresbrowser/src/browserapp/BrowserApp.cpp
scummex/branches/gsoc2007-gameresbrowser/src/browserapp/MainForm.cpp
scummex/branches/gsoc2007-gameresbrowser/src/browserapp/MainForm.wxform
scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/BinaryPresenter.cpp
scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/BinaryPresenter.h
scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/CHexEditCtrl.cpp
scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/CHexEditCtrl.h
scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/FileInfoPresenter.cpp
scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/ImagePresenter.cpp
scummex/branches/gsoc2007-gameresbrowser/wxdev/Browser.layout
Modified: scummex/branches/gsoc2007-gameresbrowser/src/browserapp/BrowserApp.cpp
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/browserapp/BrowserApp.cpp 2007-07-21 14:39:12 UTC (rev 28155)
+++ scummex/branches/gsoc2007-gameresbrowser/src/browserapp/BrowserApp.cpp 2007-07-21 16:28:32 UTC (rev 28156)
@@ -23,7 +23,8 @@
/*BrowserDlg* dialog = new BrowserDlg(NULL);
SetTopWindow(dialog);
dialog->Show(true);*/
- MainForm* mainForm = new MainForm(NULL);
+ MainForm* mainForm = new MainForm(NULL, 1, wxT("Game Resource Browser"),
+ wxDefaultPosition, wxSize(800, 600));
SetTopWindow(mainForm);
Modified: scummex/branches/gsoc2007-gameresbrowser/src/browserapp/MainForm.cpp
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/browserapp/MainForm.cpp 2007-07-21 14:39:12 UTC (rev 28155)
+++ scummex/branches/gsoc2007-gameresbrowser/src/browserapp/MainForm.cpp 2007-07-21 16:28:32 UTC (rev 28156)
@@ -62,6 +62,8 @@
: wxFrame(parent, id, title, position, size, style) {
CreateGUIControls();
WxSplitterWindow1->SetSashGravity(0.3);
+ WxSplitterWindow1->SetMinimumPaneSize(0);
+ WxSplitterWindow1->SetSashPosition(300);
InitializeObjects();
@@ -143,14 +145,13 @@
browserTreePopupMenu->Append(ID_POPUP_ATTACHBINARYPRESENTER, wxT("Attach Binary Presenter"), wxT(""), wxITEM_NORMAL);
browserTreePopupMenu->Append(ID_POPUP_DUMPOBJECTCHAIN, wxT("Dump Object Chain"), wxT(""), wxITEM_NORMAL);
- WxSplitterWindow1->SplitVertically(browserTree,mainPanel,185);
+ WxSplitterWindow1->SplitVertically(browserTree,mainPanel,300);
SetTitle(wxT("Game Resource Browser"));
SetIcon(wxNullIcon);
GetSizer()->Layout();
- GetSizer()->Fit(this);
- GetSizer()->SetSizeHints(this);
+ //GetSizer()->Fit(this);
Center();
////GUI Items Creation End
Modified: scummex/branches/gsoc2007-gameresbrowser/src/browserapp/MainForm.wxform
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/browserapp/MainForm.wxform 2007-07-21 14:39:12 UTC (rev 28155)
+++ scummex/branches/gsoc2007-gameresbrowser/src/browserapp/MainForm.wxform 2007-07-21 16:28:32 UTC (rev 28156)
@@ -23,7 +23,7 @@
Wx_Class = 'wxFrame'
Wx_Center = True
Wx_Hidden = False
- Wx_SizeToContents = True
+ Wx_SizeToContents = False
Wx_GeneralStyle = []
Wx_DialogStyle = [wxCAPTION, wxRESIZE_BORDER, wxSYSTEM_MENU, wxTHICK_FRAME, wxDIALOG_NO_PARENT, wxMINIMIZE_BOX, wxMAXIMIZE_BOX, wxCLOSE_BOX]
Wx_DesignerType = dtWxFrame
@@ -154,6 +154,133 @@
end
end
end
+ object browserTreePopupMenu: TWxPopupMenu
+ Left = 324
+ Top = 202
+ Width = 28
+ Height = 27
+ TabOrder = 2
+ Glyph.Data = {
+ 36090000424D3609000000000000360000002800000018000000180000000100
+ 2000000000000009000000000000000000000000000000000000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800000808000008080000080800000808000000000000000
+ 0000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800000808000008080000080800000000000FFFFFF00FFFF
+ FF00000000000080800000808000008080000080800000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000000000000808000008080000080800000000000FFFFFF00FFFF
+ FF00000000000080800000808000008080000080800000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 80000080800000000000000000000080800000000000FFFFFF00FFFFFF000000
+ 0000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 80000080800000000000FFFFFF000000000000000000FFFFFF00FFFFFF000000
+ 0000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 80000080800000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 80000080800000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000
+ 0000000000000000000000808000008080000080800000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 80000080800000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00000000000080800000808000008080000080800000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 80000080800000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000
+ 0000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800080808000000000000000000000000000000000000000
+ 00000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800080808000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF0000000000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800080808000FFFFFF008000000080000000800000008000
+ 00008000000000000000FFFFFF00FFFFFF000000000000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800080808000800000008000000080000000800000008000
+ 00008000000000000000FFFFFF00000000000000000000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 800000808000008080008080800080000000FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF000000000000000000800000000000000000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800080808000800000008000000080000000800000008000
+ 0000800000008000000080000000800000000000000000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800080808000FFFFFF008000000080000000800000008000
+ 000080000000FFFFFF00FFFFFF00FFFFFF000000000000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800080808000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800080808000FFFFFF008000000080000000800000008000
+ 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800080808000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800080808000FFFFFF008000000080000000800000008000
+ 000080000000FFFFFF00FFFFFF00FFFFFF000000000000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800080808000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800080808000808080008080800080808000808080008080
+ 8000808080008080800080808000808080008080800000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800000808000008080000080800000808000}
+ Wx_Class = 'wxMenu'
+ Wx_MenuItems.IsSubMenu = False
+ Wx_MenuItems.Wx_Enabled = True
+ Wx_MenuItems.Wx_Hidden = False
+ Wx_MenuItems.Wx_IDValue = 0
+ Wx_MenuItems.Wx_MenuItemStyle = wxMnuItm_Normal
+ Wx_MenuItems.Wx_Checked = False
+ Wx_MenuItems.Wx_FileHistory = False
+ Wx_MenuItems.WxCustomMenuItem = {
+ 11000000545778437573746F6D4D656E754974656D5450463018547778437573
+ 746F6D4D656E754974656D577261707065720011436172726965642E49735375
+ 624D656E750810436172726965642E4556545F4D656E75060F4F6E506F707570
+ 416374697661746512436172726965642E57785F456E61626C65640911436172
+ 726965642E57785F48696464656E0811436172726965642E57785F49444E616D
+ 65061149445F504F5055505F414354495641544512436172726965642E57785F
+ 494456616C7565030B0418436172726965642E57785F4D656E754974656D5374
+ 796C65070F77784D6E7549746D5F4E6F726D616C12436172726965642E57785F
+ 43617074696F6E0608416374697661746512436172726965642E57785F436865
+ 636B65640816436172726965642E57585F4249544D41502E446174610A0C0000
+ 0007544269746D61700000000016436172726965642E57785F46696C65486973
+ 746F727908000011000000545778437573746F6D4D656E754974656D54504630
+ 18547778437573746F6D4D656E754974656D5772617070657200114361727269
+ 65642E49735375624D656E750810436172726965642E4556545F4D656E75061C
+ 4F6E506F70757041747461636842696E61727950726573656E74657212436172
+ 726965642E57785F456E61626C65640911436172726965642E57785F48696464
+ 656E0811436172726965642E57785F49444E616D65061E49445F504F5055505F
+ 41545441434842494E41525950524553454E54455212436172726965642E5778
+ 5F494456616C7565030C0418436172726965642E57785F4D656E754974656D53
+ 74796C65070F77784D6E7549746D5F4E6F726D616C12436172726965642E5778
+ 5F43617074696F6E06174174746163682042696E6172792050726573656E7465
+ 7212436172726965642E57785F436865636B65640816436172726965642E5758
+ 5F4249544D41502E446174610A0C00000007544269746D617000000000164361
+ 72726965642E57785F46696C65486973746F7279080000110000005457784375
+ 73746F6D4D656E754974656D5450463018547778437573746F6D4D656E754974
+ 656D577261707065720011436172726965642E49735375624D656E7508104361
+ 72726965642E4556545F4D656E7506164F6E506F70757044756D704F626A6563
+ 74436861696E12436172726965642E57785F456E61626C656409114361727269
+ 65642E57785F48696464656E0811436172726965642E57785F49444E616D6506
+ 1849445F504F5055505F44554D504F424A454354434841494E12436172726965
+ 642E57785F494456616C7565030D0418436172726965642E57785F4D656E7549
+ 74656D5374796C65070F77784D6E7549746D5F4E6F726D616C12436172726965
+ 642E57785F43617074696F6E061144756D70204F626A65637420436861696E12
+ 436172726965642E57785F436865636B65640816436172726965642E57585F42
+ 49544D41502E446174610A0C00000007544269746D6170000000001643617272
+ 6965642E57785F46696C65486973746F7279080000}
+ end
object WxMenuBar1: TWxMenuBar
Left = 288
Top = 117
@@ -448,131 +575,4 @@
65642E57785F46696C65486973746F72790800000000}
Wx_HasHistory = False
end
- object browserTreePopupMenu: TWxPopupMenu
- Left = 324
- Top = 202
- Width = 28
- Height = 27
- TabOrder = 2
- Glyph.Data = {
- 36090000424D3609000000000000360000002800000018000000180000000100
- 2000000000000009000000000000000000000000000000000000008080000080
- 8000008080000080800000808000008080000080800000808000008080000080
- 8000008080000080800000808000008080000080800000808000008080000080
- 8000008080000080800000808000008080000080800000808000008080000080
- 8000008080000080800000808000008080000080800000808000008080000080
- 8000008080000080800000808000008080000080800000808000000000000000
- 0000008080000080800000808000008080000080800000808000008080000080
- 8000008080000080800000808000008080000080800000808000008080000080
- 8000008080000080800000808000008080000080800000000000FFFFFF00FFFF
- FF00000000000080800000808000008080000080800000808000008080000080
- 8000008080000080800000808000008080000080800000808000008080000080
- 8000008080000000000000808000008080000080800000000000FFFFFF00FFFF
- FF00000000000080800000808000008080000080800000808000008080000080
- 8000008080000080800000808000008080000080800000808000008080000080
- 80000080800000000000000000000080800000000000FFFFFF00FFFFFF000000
- 0000008080000080800000808000008080000080800000808000008080000080
- 8000008080000080800000808000008080000080800000808000008080000080
- 80000080800000000000FFFFFF000000000000000000FFFFFF00FFFFFF000000
- 0000008080000080800000808000008080000080800000808000008080000080
- 8000008080000080800000808000008080000080800000808000008080000080
- 80000080800000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000080
- 8000008080000080800000808000008080000080800000808000008080000080
- 8000008080000080800000808000008080000080800000808000008080000080
- 80000080800000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000
- 0000000000000000000000808000008080000080800000808000008080000080
- 8000008080000080800000808000008080000080800000808000008080000080
- 80000080800000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
- FF00000000000080800000808000008080000080800000808000008080000080
- 8000008080000080800000808000008080000080800000808000008080000080
- 80000080800000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000
- 0000008080000080800000808000008080000080800000808000008080000080
- 8000008080000080800080808000000000000000000000000000000000000000
- 00000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000080
- 8000008080000080800000808000008080000080800000808000008080000080
- 8000008080000080800080808000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
- FF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF0000000000008080000080
- 8000008080000080800000808000008080000080800000808000008080000080
- 8000008080000080800080808000FFFFFF008000000080000000800000008000
- 00008000000000000000FFFFFF00FFFFFF000000000000808000008080000080
- 8000008080000080800000808000008080000080800000808000008080000080
- 8000008080000080800080808000800000008000000080000000800000008000
- 00008000000000000000FFFFFF00000000000000000000808000008080000080
- 8000008080000080800000808000008080000080800000808000008080000080
- 800000808000008080008080800080000000FFFFFF00FFFFFF00FFFFFF00FFFF
- FF00FFFFFF000000000000000000800000000000000000808000008080000080
- 8000008080000080800000808000008080000080800000808000008080000080
- 8000008080000080800080808000800000008000000080000000800000008000
- 0000800000008000000080000000800000000000000000808000008080000080
- 8000008080000080800000808000008080000080800000808000008080000080
- 8000008080000080800080808000FFFFFF008000000080000000800000008000
- 000080000000FFFFFF00FFFFFF00FFFFFF000000000000808000008080000080
- 8000008080000080800000808000008080000080800000808000008080000080
- 8000008080000080800080808000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
- FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000808000008080000080
- 8000008080000080800000808000008080000080800000808000008080000080
- 8000008080000080800080808000FFFFFF008000000080000000800000008000
- 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000808000008080000080
- 8000008080000080800000808000008080000080800000808000008080000080
- 8000008080000080800080808000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
- FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000808000008080000080
- 8000008080000080800000808000008080000080800000808000008080000080
- 8000008080000080800080808000FFFFFF008000000080000000800000008000
- 000080000000FFFFFF00FFFFFF00FFFFFF000000000000808000008080000080
- 8000008080000080800000808000008080000080800000808000008080000080
- 8000008080000080800080808000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
- FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000808000008080000080
- 8000008080000080800000808000008080000080800000808000008080000080
- 8000008080000080800080808000808080008080800080808000808080008080
- 8000808080008080800080808000808080008080800000808000008080000080
- 8000008080000080800000808000008080000080800000808000008080000080
- 8000008080000080800000808000008080000080800000808000008080000080
- 8000008080000080800000808000008080000080800000808000008080000080
- 8000008080000080800000808000008080000080800000808000}
- Wx_Class = 'wxMenu'
- Wx_MenuItems.IsSubMenu = False
- Wx_MenuItems.Wx_Enabled = True
- Wx_MenuItems.Wx_Hidden = False
- Wx_MenuItems.Wx_IDValue = 0
- Wx_MenuItems.Wx_MenuItemStyle = wxMnuItm_Normal
- Wx_MenuItems.Wx_Checked = False
- Wx_MenuItems.Wx_FileHistory = False
- Wx_MenuItems.WxCustomMenuItem = {
- 11000000545778437573746F6D4D656E754974656D5450463018547778437573
- 746F6D4D656E754974656D577261707065720011436172726965642E49735375
- 624D656E750810436172726965642E4556545F4D656E75060F4F6E506F707570
- 416374697661746512436172726965642E57785F456E61626C65640911436172
- 726965642E57785F48696464656E0811436172726965642E57785F49444E616D
- 65061149445F504F5055505F414354495641544512436172726965642E57785F
- 494456616C7565030B0418436172726965642E57785F4D656E754974656D5374
- 796C65070F77784D6E7549746D5F4E6F726D616C12436172726965642E57785F
- 43617074696F6E0608416374697661746512436172726965642E57785F436865
- 636B65640816436172726965642E57585F4249544D41502E446174610A0C0000
- 0007544269746D61700000000016436172726965642E57785F46696C65486973
- 746F727908000011000000545778437573746F6D4D656E754974656D54504630
- 18547778437573746F6D4D656E754974656D5772617070657200114361727269
- 65642E49735375624D656E750810436172726965642E4556545F4D656E75061C
- 4F6E506F70757041747461636842696E61727950726573656E74657212436172
- 726965642E57785F456E61626C65640911436172726965642E57785F48696464
- 656E0811436172726965642E57785F49444E616D65061E49445F504F5055505F
- 41545441434842494E41525950524553454E54455212436172726965642E5778
- 5F494456616C7565030C0418436172726965642E57785F4D656E754974656D53
- 74796C65070F77784D6E7549746D5F4E6F726D616C12436172726965642E5778
- 5F43617074696F6E06174174746163682042696E6172792050726573656E7465
- 7212436172726965642E57785F436865636B65640816436172726965642E5758
- 5F4249544D41502E446174610A0C00000007544269746D617000000000164361
- 72726965642E57785F46696C65486973746F7279080000110000005457784375
- 73746F6D4D656E754974656D5450463018547778437573746F6D4D656E754974
- 656D577261707065720011436172726965642E49735375624D656E7508104361
- 72726965642E4556545F4D656E7506164F6E506F70757044756D704F626A6563
- 74436861696E12436172726965642E57785F456E61626C656409114361727269
- 65642E57785F48696464656E0811436172726965642E57785F49444E616D6506
- 1849445F504F5055505F44554D504F424A454354434841494E12436172726965
- 642E57785F494456616C7565030D0418436172726965642E57785F4D656E7549
- 74656D5374796C65070F77784D6E7549746D5F4E6F726D616C12436172726965
- 642E57785F43617074696F6E061144756D70204F626A65637420436861696E12
- 436172726965642E57785F436865636B65640816436172726965642E57585F42
- 49544D41502E446174610A0C00000007544269746D6170000000001643617272
- 6965642E57785F46696C65486973746F7279080000}
- end
end
Modified: scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/BinaryPresenter.cpp
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/BinaryPresenter.cpp 2007-07-21 14:39:12 UTC (rev 28155)
+++ scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/BinaryPresenter.cpp 2007-07-21 16:28:32 UTC (rev 28156)
@@ -10,6 +10,9 @@
#include <iostream>
#include "CHexEditCtrl.h"
+#include <wx/wupdlock.h>
+#include <wx/splitter.h>
+#include <wx/listctrl.h>
#include "debugmem.h"
@@ -83,167 +86,175 @@
wxBoxSizer *panelsizer = new wxBoxSizer( wxVERTICAL );
- _hexCtrl = new CHexEditCtrl(panel);
- panelsizer->Add(_hexCtrl, 1, wxALL|wxEXPAND, 0);
+ wxSplitterWindow* splitterWindow = new wxSplitterWindow(panel);
+ panelsizer->Add(splitterWindow, 1, wxEXPAND | wxALL, 0);
- wxBoxSizer *editsizer = new wxBoxSizer( wxHORIZONTAL );
+ _hexCtrl = new CHexEditCtrl(splitterWindow);
+ _listCtrl = new wxListCtrl(splitterWindow, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_REPORT);
+ _listCtrl->InsertColumn(0, wxT("Type"), wxLIST_FORMAT_LEFT, 100);
+ _listCtrl->InsertColumn(1, wxT("Value"), wxLIST_FORMAT_LEFT, 500);
- wxStaticText *offsetText = new wxStaticText(panel, wxID_ANY, wxT("Offset: "), wxDefaultPosition, wxDefaultSize, 0);
- editsizer->Add(offsetText, 0, wxALL, 0);
- _offsetValue = new wxTextCtrl(panel, wxID_ANY, wxT("0x00000000"), wxDefaultPosition, wxDefaultSize, wxTE_READONLY | wxTE_RIGHT);
- editsizer->Add(_offsetValue, 0, wxALL, 0);
+ splitterWindow->SplitHorizontally(_hexCtrl, _listCtrl, -150);
- wxStaticText *dataText = new wxStaticText(panel, wxID_ANY, wxT(" Value: "), wxDefaultPosition, wxDefaultSize, 0);
- editsizer->Add(dataText, 0, wxALL, 0);
- _dataValue = new wxTextCtrl(panel, wxID_ANY, wxT("0"), wxDefaultPosition, wxDefaultSize, wxTE_READONLY);
- editsizer->Add(_dataValue, 0, wxALL, 0);
-
wxBoxSizer *buttonsizer = new wxBoxSizer( wxHORIZONTAL );
+ wxButton *copyButton = new wxButton(panel, wxID_COPY, wxT("Copy"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT);
+ buttonsizer->Add(copyButton, 0, wxALL, 0);
+
wxCheckBox *absoluteCheckBox = new wxCheckBox(panel, wxID_ANY, wxT("absolute"), wxDefaultPosition, wxDefaultSize, 0);
buttonsizer->Add(absoluteCheckBox, 0, wxALL, 0);
- wxRadioButton *bytesRadio = new wxRadioButton(panel, wxID_ANY, wxT("bytes"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP);
- buttonsizer->Add(bytesRadio, 0, wxALL, 0);
- wxRadioButton *wordsRadio = new wxRadioButton(panel, wxID_ANY, wxT("words"), wxDefaultPosition, wxDefaultSize, 0);
- buttonsizer->Add(wordsRadio, 0, wxALL, 0);
- wxRadioButton *dwordsRadio = new wxRadioButton(panel, wxID_ANY, wxT("dwords"), wxDefaultPosition, wxDefaultSize, 0);
- buttonsizer->Add(dwordsRadio, 0, wxALL, 0);
-
- bytesRadio->SetValue(true);
-
- wxSlider *columnsSlider = new wxSlider(panel, wxID_ANY, 1, 1, 3, wxDefaultPosition, wxDefaultSize, wxSL_AUTOTICKS);
- buttonsizer->Add(columnsSlider, 0, wxALL, 0);
-
- panelsizer->Add(editsizer, 0, wxALL, 0);
panelsizer->Add(buttonsizer, 0, wxALL, 0);
panel->SetAutoLayout(true);
panel->SetSizer(panelsizer);
+ panelsizer->Layout();
+ buttonsizer->Layout();
panel->Layout();
+ splitterWindow->SetSashPosition(-150);
+
_hexCtrl->Connect(_hexCtrl->GetId(), wxEVT_HEXEDIT_CHANGED,
wxCommandEventHandler(DumpBinaryEvtHandler::hexeditChanged), NULL, &_evtHelper);
absoluteCheckBox->Connect(absoluteCheckBox->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED,
wxCommandEventHandler(DumpBinaryEvtHandler::absoluteCheckBoxClick), NULL, &_evtHelper);
+ copyButton->Connect(copyButton->GetId(), wxEVT_COMMAND_BUTTON_CLICKED,
+ wxCommandEventHandler(DumpBinaryEvtHandler::copyButtonClick), NULL, &_evtHelper);
- bytesRadio->Connect(bytesRadio->GetId(), wxEVT_COMMAND_RADIOBUTTON_SELECTED,
- wxCommandEventHandler(DumpBinaryEvtHandler::bytesRadioClick), NULL, &_evtHelper);
- wordsRadio->Connect(wordsRadio->GetId(), wxEVT_COMMAND_RADIOBUTTON_SELECTED,
- wxCommandEventHandler(DumpBinaryEvtHandler::wordsRadioClick), NULL, &_evtHelper);
- dwordsRadio->Connect(dwordsRadio->GetId(), wxEVT_COMMAND_RADIOBUTTON_SELECTED,
- wxCommandEventHandler(DumpBinaryEvtHandler::dwordsRadioClick), NULL, &_evtHelper);
-
- columnsSlider->Connect(columnsSlider->GetId(), wxEVT_SCROLL_TOP,
- wxScrollEventHandler(DumpBinaryEvtHandler::columnsSliderMove), NULL, &_evtHelper);
- columnsSlider->Connect(columnsSlider->GetId(), wxEVT_SCROLL_BOTTOM,
- wxScrollEventHandler(DumpBinaryEvtHandler::columnsSliderMove), NULL, &_evtHelper);
- columnsSlider->Connect(columnsSlider->GetId(), wxEVT_SCROLL_LINEUP,
- wxScrollEventHandler(DumpBinaryEvtHandler::columnsSliderMove), NULL, &_evtHelper);
- columnsSlider->Connect(columnsSlider->GetId(), wxEVT_SCROLL_LINEDOWN,
- wxScrollEventHandler(DumpBinaryEvtHandler::columnsSliderMove), NULL, &_evtHelper);
- columnsSlider->Connect(columnsSlider->GetId(), wxEVT_SCROLL_PAGEUP,
- wxScrollEventHandler(DumpBinaryEvtHandler::columnsSliderMove), NULL, &_evtHelper);
- columnsSlider->Connect(columnsSlider->GetId(), wxEVT_SCROLL_PAGEDOWN,
- wxScrollEventHandler(DumpBinaryEvtHandler::columnsSliderMove), NULL, &_evtHelper);
- columnsSlider->Connect(columnsSlider->GetId(), wxEVT_SCROLL_THUMBTRACK,
- wxScrollEventHandler(DumpBinaryEvtHandler::columnsSliderMove), NULL, &_evtHelper);
- columnsSlider->Connect(columnsSlider->GetId(), wxEVT_SCROLL_THUMBRELEASE,
- wxScrollEventHandler(DumpBinaryEvtHandler::columnsSliderMove), NULL, &_evtHelper);
- columnsSlider->Connect(columnsSlider->GetId(), wxEVT_SCROLL_CHANGED,
- wxScrollEventHandler(DumpBinaryEvtHandler::columnsSliderMove), NULL, &_evtHelper);
-
_hexCtrl->SetData(data, dataSize);
_hexCtrl->SetReadOnly(true);
+
+ //panel->Layout();
+ //panel->Refresh(false);
}
void BinaryPresenter::panelDeactivate() {
//infoout << wxT("BinaryPresenter::panelDeactivate()") << std::endl;
}
+void DumpBinaryEvtHandler::copyButtonClick(wxCommandEvent& event) {
+ _that->_hexCtrl->OnEditCopy(event);
+}
+
void DumpBinaryEvtHandler::hexeditChanged(wxCommandEvent& event) {
- long offs = event.GetExtraLong();
- int val = event.GetInt();
+ CHexEditCtrl* hex = _that->_hexCtrl;
- wxString soffs(wxT("0x"));
- soffs << toHex((uint32)offs, offs > 0xFFFF ? 8 : 4);
- _that->_offsetValue->SetValue(soffs);
+ //wxUint32 curOffs = hex->GetOffset();
+ wxUint32 selOffs = hex->GetSelectionOffset();
- wxString sval;
- sval << val;
- _that->_dataValue->SetValue(sval);
-}
+ std::vector<wxByte> strbuf = hex->GetDataRange(selOffs, 500, true, true);
+ std::vector<wxByte> tbyte = hex->GetDataRange(selOffs, 8, true, false);
+ wxASSERT(tbyte.size() >= 8);
-void DumpBinaryEvtHandler::absoluteCheckBoxClick(wxCommandEvent& event) {
- if (event.IsChecked()) {
- _that->_hexCtrl->SetStartAddr(_that->_idata->getStartOffset());
- } else {
- _that->_hexCtrl->SetStartAddr(0);
- }
-}
+ uint32 ui32le = READ_LE_UINT32(&tbyte[0]);
+ uint16 ui16le = READ_LE_UINT16(&tbyte[0]);
+ uint32 ui32be = READ_BE_UINT32(&tbyte[0]);
+ uint16 ui16be = READ_BE_UINT16(&tbyte[0]);
+ uint8 ui8 = (uint8)ui16le;
-void DumpBinaryEvtHandler::bytesRadioClick(wxCommandEvent& event) {
- int nColumns = _that->_hexCtrl->GetColumns();
- int nDigits = _that->_hexCtrl->GetDigitsInData();
- int bytes = nColumns * nDigits/2;
- _that->_hexCtrl->SetColumns(bytes);
- _that->_hexCtrl->SetDigitsInData(2);
-}
+ wxString strOffs;
+ strOffs << wxT("0x") << toHex(selOffs, selOffs > 0xFFFF ? 8 : 4);
+ wxUint32 absOffset = selOffs + _that->_idata->getStartOffset();
+ strOffs << wxT(" 0x") << toHex(absOffset, absOffset > 0xFFFF ? 8 : 4);
-void DumpBinaryEvtHandler::wordsRadioClick(wxCommandEvent& event) {
- int nColumns = _that->_hexCtrl->GetColumns();
- int nDigits = _that->_hexCtrl->GetDigitsInData();
- int bytes = nColumns * nDigits/2;
- _that->_hexCtrl->SetColumns(bytes / 2);
- _that->_hexCtrl->SetDigitsInData(4);
-}
+ wxListCtrl* list = _that->_listCtrl;
-void DumpBinaryEvtHandler::dwordsRadioClick(wxCommandEvent& event) {
- int nColumns = _that->_hexCtrl->GetColumns();
- int nDigits = _that->_hexCtrl->GetDigitsInData();
- int bytes = nColumns * nDigits/2;
- _that->_hexCtrl->SetColumns(bytes / 4);
- _that->_hexCtrl->SetDigitsInData(8);
-}
+ wxWindowUpdateLocker lockList(list);
-void DumpBinaryEvtHandler::columnsSliderMove(wxScrollEvent& _event) {
- int nColumns = _that->_hexCtrl->GetColumns();
- nColumns *= _that->_hexCtrl->GetDigitsInData()/2;
- int saveColumns;
- switch (nColumns) {
- case 8: saveColumns = nColumns = 1; break;
- case 16: saveColumns = nColumns = 2; break;
- case 32: saveColumns = nColumns = 3; break;
- default: saveColumns = -1; nColumns = 1; break;
- }
+ list->DeleteAllItems();
- wxEventType ev = _event.GetEventType();
+ long idx;
+ wxListItem item;
+ item.m_mask = wxLIST_MASK_TEXT;
+ item.m_stateMask = 0;
+ item.m_itemId = 0;
+ item.SetTextColour(*wxBLACK);
- if (ev == wxEVT_SCROLL_LINEDOWN)
- nColumns += 1;
- else
- if (ev == wxEVT_SCROLL_LINEUP)
- nColumns -= 1;
- else
- if (ev == wxEVT_SCROLL_PAGEDOWN)
- nColumns += 1;
- else
- if (ev == wxEVT_SCROLL_PAGEUP)
- nColumns -= 1;
- else
- if (ev == wxEVT_SCROLL_THUMBTRACK ||
- ev == wxEVT_SCROLL_THUMBRELEASE)
- nColumns = _event.GetPosition();
+ item.SetBackgroundColour(false ? *wxWHITE : wxColour(237, 243, 254));
+ item.m_col = 0;
+ item.m_text = wxT("offset");
+ idx = list->InsertItem(item);
+ item.m_itemId = idx;
+ item.m_col = 1;
+ item.m_text = strOffs;
+ list->SetItem(item);
- if (nColumns != saveColumns) {
- switch (nColumns) {
- case 1: nColumns = 8; break;
- case 2: nColumns = 16; break;
- case 3: nColumns = 32; break;
- default: nColumns = (nColumns < 1) ? 8 : 32; break;
- }
- _that->_hexCtrl->SetColumns(nColumns / (_that->_hexCtrl->GetDigitsInData()/2));
+ item.SetBackgroundColour(true ? *wxWHITE : wxColour(237, 243, 254));
+ item.m_col = 0;
+ item.m_text = wxT("string");
+ idx = list->InsertItem(item);
+ item.m_itemId = idx;
+ item.m_col = 1;
+ item.m_text = toString((const char*)&strbuf[0]);
+ list->SetItem(item);
+
+ item.SetBackgroundColour(false ? *wxWHITE : wxColour(237, 243, 254));
+ item.m_col = 0;
+ item.m_text = wxT("int32 LE");
+ idx = list->InsertItem(item);
+ item.m_itemId = idx;
+ item.m_col = 1;
+ item.m_text = wxT("");
+ item.m_text << wxT("0x") << toHex(ui32le, 8);
+ item.m_text << wxT(" ") << ui32le;
+ item.m_text << wxT(" ") << (int32)ui32le;
+ list->SetItem(item);
+
+ item.SetBackgroundColour(true ? *wxWHITE : wxColour(237, 243, 254));
+ item.m_col = 0;
+ item.m_text = wxT("int32 BE");
+ idx = list->InsertItem(item);
+ item.m_itemId = idx;
+ item.m_col = 1;
+ item.m_text = wxT("");
+ item.m_text << wxT("0x") << toHex(ui32be, 8);
+ item.m_text << wxT(" ") << ui32be;
+ item.m_text << wxT(" ") << (int32)ui32be;
+ list->SetItem(item);
+
+ item.SetBackgroundColour(false ? *wxWHITE : wxColour(237, 243, 254));
+ item.m_col = 0;
+ item.m_text = wxT("int16 LE");
+ idx = list->InsertItem(item);
+ item.m_itemId = idx;
+ item.m_col = 1;
+ item.m_text = wxT("");
+ item.m_text << wxT("0x") << toHex(ui16le, 4);
+ item.m_text << wxT(" ") << ui16le;
+ item.m_text << wxT(" ") << (int16)ui16le;
+ list->SetItem(item);
+
+ item.SetBackgroundColour(true ? *wxWHITE : wxColour(237, 243, 254));
+ item.m_col = 0;
+ item.m_text = wxT("int16 BE");
+ idx = list->InsertItem(item);
+ item.m_itemId = idx;
+ item.m_col = 1;
+ item.m_text = wxT("");
+ item.m_text << wxT("0x") << toHex(ui16be, 4);
+ item.m_text << wxT(" ") << ui16be;
+ item.m_text << wxT(" ") << (int16)ui16be;
+ list->SetItem(item);
+
+ item.SetBackgroundColour(false ? *wxWHITE : wxColour(237, 243, 254));
+ item.m_col = 0;
+ item.m_text = wxT("int8");
+ idx = list->InsertItem(item);
+ item.m_itemId = idx;
+ item.m_col = 1;
+ item.m_text = wxT("");
+ item.m_text << wxT("0x") << toHex(ui8, 2);
+ item.m_text << wxT(" ") << ui8;
+ item.m_text << wxT(" ") << (int8)ui8;
+ list->SetItem(item);
+}
+
+void DumpBinaryEvtHandler::absoluteCheckBoxClick(wxCommandEvent& event) {
+ if (event.IsChecked()) {
+ _that->_hexCtrl->SetStartAddr(_that->_idata->getStartOffset());
+ } else {
+ _that->_hexCtrl->SetStartAddr(0);
}
}
Modified: scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/BinaryPresenter.h
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/BinaryPresenter.h 2007-07-21 14:39:12 UTC (rev 28155)
+++ scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/BinaryPresenter.h 2007-07-21 16:28:32 UTC (rev 28156)
@@ -11,6 +11,7 @@
#include "AuxInterfaces.h"
class CHexEditCtrl;
+class wxListCtrl;
namespace Browser {
@@ -35,12 +36,9 @@
DumpBinaryEvtHandler(BinaryPresenter* that)
: _that(that) {}
- void absoluteCheckBoxClick(wxCommandEvent& event);
void hexeditChanged(wxCommandEvent& event);
- void bytesRadioClick(wxCommandEvent& event);
- void wordsRadioClick(wxCommandEvent& event);
- void dwordsRadioClick(wxCommandEvent& event);
- void columnsSliderMove(wxScrollEvent& event);
+ void absoluteCheckBoxClick(wxCommandEvent& event);
+ void copyButtonClick(wxCommandEvent& event);
};
/////////////////////////////////////////////////////////////////////////////
@@ -55,13 +53,11 @@
IBinary* _idata;
CHexEditCtrl* _hexCtrl;
- wxTextCtrl* _offsetValue;
- wxTextCtrl* _dataValue;
+ wxListCtrl* _listCtrl;
DumpBinaryEvtHandler _evtHelper;
friend struct DumpBinaryEvtHandler;
-
public:
ASSIGN_DESC(0, wxT("CoreObjects"), 1)
Modified: scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/CHexEditCtrl.cpp
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/CHexEditCtrl.cpp 2007-07-21 14:39:12 UTC (rev 28155)
+++ scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/CHexEditCtrl.cpp 2007-07-21 16:28:32 UTC (rev 28156)
@@ -44,6 +44,7 @@
EVT_SET_FOCUS(CHexEditCtrl::OnSetFocus)
EVT_KILL_FOCUS(CHexEditCtrl::OnKillFocus)
EVT_MOTION(CHexEditCtrl::OnMouseMotion)
+ EVT_MOUSEWHEEL(CHexEditCtrl::OnMouseWheel)
EVT_RIGHT_DOWN(CHexEditCtrl::OnContextMenu)
EVT_LEFT_DOWN(CHexEditCtrl::OnLeftDown)
EVT_LEFT_UP(CHexEditCtrl::OnLeftUP)
@@ -103,7 +104,7 @@
m_showAscii = true;
m_digitsInData = 2;
m_digitsInAddress = 4;
- m_columns = 8;
+ m_columns = 16;
m_fontHeight = 10; //in points
m_allowChangeSize = false;
@@ -170,6 +171,19 @@
/////////////////////////////////////////////////////////////////////////////
// Calculations
+wxUint32 CHexEditCtrl::getAddressFromPos(int pos) {
+ return pos * (m_digitsInData/2);
+}
+
+int CHexEditCtrl::getPosFromAddress(wxUint32 address) {
+ return address / (m_digitsInData/2);
+}
+
+// return address aligned to (m_digitsInData/2)
+wxUint32 CHexEditCtrl::getAddressFromRowCol(int row, int col) {
+ return (row * m_columns + col) * (m_digitsInData/2);
+}
+
// address does not include m_dwStartAddr, doesn't have to be aligned to (m_digitsInData/2)
int CHexEditCtrl::getRowFromAddress(wxUint32 address) {
return address / (m_columns * (m_digitsInData/2));
@@ -180,11 +194,16 @@
return (address / (m_digitsInData/2)) % m_columns;
}
-// return address aligned to (m_digitsInData/2)
-wxUint32 CHexEditCtrl::getAddress(int row, int col) {
- return (row * m_columns + col) * (m_digitsInData/2);
+//is pos safe to read from
+bool CHexEditCtrl::isPosValid(int pos) {
+ wxUint32 offs = getAddressFromPos(pos);
+ return (offs >= 0 && offs + (m_digitsInData/2) <= (wxUint32)m_data.size());
}
+bool CHexEditCtrl::isAddressValid(wxUint32 address, bool onlyOneByte /*= false*/) {
+ return (address >= 0 && address + (onlyOneByte ? 1 : (m_digitsInData/2)) <= (wxUint32)m_data.size());
+}
+
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// Painting
@@ -265,8 +284,8 @@
int dwPos = j + dwRowPos;
bool pos_ok = wxUint32(dwPos * (m_digitsInData / 2)) < m_data.size();
- curBackground = (getRowFromAddress(dwPos) & 1) ? m_myBackgroundColourOdd
- : m_myBackgroundColour;
+ curBackground = (getRowFromAddress(dwPos) & 1) ? m_myBackgroundColour
+ : m_myBackgroundColourOdd;
//draw a space after hex number
if ( dwPos >= m_selStart && dwPos < m_selEnd && j != (m_columns-1)) {
@@ -566,24 +585,72 @@
//SetModifiedFlag(); - mark that persistent properties changed
}
-int CHexEditCtrl::GetOffset() {
- return m_dwStartAddr + m_editPos * (m_digitsInData/2);
+wxUint32 CHexEditCtrl::GetOffset(bool absolute /*= false*/) {
+ return (absolute ? m_dwStartAddr : 0) + getAddressFromPos(m_editPos);
}
-int CHexEditCtrl::GetValue() {
- int offs = m_editPos * (m_digitsInData/2);
- if (offs >= (int)m_data.size())
+wxUint32 CHexEditCtrl::GetSelectionOffset() {
+ wxUint32 start = getAddressFromPos(m_selStart);
+ if (m_selStart < 0 || m_selEnd < 0) {
+ if (m_editPos < 0)
+ return 0;
+ start = getAddressFromPos(m_editPos);
+ }
+ return start;
+}
+
+wxUint32 CHexEditCtrl::GetValue() {
+ wxUint32 offs = getAddressFromPos(m_editPos);
+ if (offs >= (wxUint32)m_data.size())
return 0;
- wxASSERT(offs + (m_digitsInData/2) <= (int)m_data.size());
+ wxASSERT(isAddressValid(offs));
switch (m_digitsInData) {
case 2: return m_data[offs];
- case 4: return *(wxInt16*)&m_data[offs];
- case 8: return *(wxInt32*)&m_data[offs];
+ case 4: return *(wxUint16*)&m_data[offs];
+ case 8: return *(wxUint32*)&m_data[offs];
default: break;
}
return 0;
}
+std::vector<wxByte> CHexEditCtrl::GetSelectedData() {
+ wxUint32 start = getAddressFromPos(m_selStart);
+ wxUint32 end = getAddressFromPos(m_selEnd + 1);
+ if (m_selStart < 0 || m_selEnd < 0) {
+ if (m_editPos < 0)
+ return std::vector<wxByte>();
+ start = getAddressFromPos(m_editPos);
+ end = getAddressFromPos(m_editPos + 1);
+ }
+
+ return GetDataRange(start, end - start, true, false);
+}
+
+std::vector<wxByte> CHexEditCtrl::GetDataRange(wxUint32 start, wxUint32 len, bool zeroPad /*= true*/, bool stopOnZero /*= false*/) {
+ std::vector<wxByte> data;
+ if (len > 512)
+ len = 512;
+ wxUint32 end = start + len;
+
+ wxUint32 i;
+ for (i = start; i < end; ++i)
+ if (!isAddressValid(i, true) || i >= m_origDataSize) {
+ if (!stopOnZero && zeroPad)
+ data.push_back(0);
+ else
+ break;
+ } else {
+ if (stopOnZero && m_data[i] == 0)
+ break;
+ data.push_back(m_data[i]);
+ }
+
+ if (stopOnZero && zeroPad && (data.size() == 0 || data.back() != 0) )
+ data.push_back(0);
+
+ return data;
+}
+
void CHexEditCtrl::SendChangedEvent()
{
wxCommandEvent event(wxEVT_HEXEDIT_CHANGED, GetId());
@@ -1087,6 +1154,26 @@
_event.Skip();
}
+void CHexEditCtrl::OnMouseWheel(wxMouseEvent& _event) {
+ int lines = _event.GetWheelRotation() / _event.GetWheelDelta() * _event.GetLinesPerAction();
+
+ int nPrevViewPos = m_viewPos;
+ m_viewPos -= lines * m_columns;
+
+ if ( m_viewPos < 0 )
+ m_viewPos = 0;
+ size_t dwDataLen = m_data.size()/(m_digitsInData/2)/m_columns * m_columns;
+ if ( m_viewPos > (long)dwDataLen - m_columns*(m_charCountWindow.GetHeight()-1) )
+ m_viewPos = (long)dwDataLen - m_columns*(m_charCountWindow.GetHeight()-1);
+
+ if ( m_viewPos != nPrevViewPos )
+ {
+ Refresh(false);
+ SetScrollbar(wxVERTICAL, m_viewPos / m_columns, m_charCountWindow.GetHeight(), m_charCountView.GetHeight());
+ PlaceCaret();
+ }
+}
+
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
Modified: scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/CHexEditCtrl.h
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/CHexEditCtrl.h 2007-07-21 14:39:12 UTC (rev 28155)
+++ scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/CHexEditCtrl.h 2007-07-21 16:28:32 UTC (rev 28156)
@@ -47,6 +47,7 @@
void OnLeftDclick(wxMouseEvent& event);
void OnLeftUP(wxMouseEvent& event);
void OnMouseMotion(wxMouseEvent& event);
+ void OnMouseWheel(wxMouseEvent& event);
void OnScroll(wxScrollWinEvent& event);
void OnHScroll(wxScrollWinEvent& event);
void OnVScroll(wxScrollWinEvent& event);
@@ -229,8 +230,11 @@
void SetFontHeight(short nNewValue);
void SetData(const wxByte* data, int len, wxUint32 startAddr = 0);
const std::vector<wxByte>& GetData();
- int GetOffset();
- int GetValue();
+ wxUint32 GetOffset(bool absolute = false);
+ wxUint32 GetSelectionOffset();
+ wxUint32 GetValue();
+ std::vector<wxByte> GetSelectedData();
+ std::vector<wxByte> GetDataRange(wxUint32 start, wxUint32 len, bool zeroPad = true, bool stopOnZero = false);
protected:
void SendChangedEvent();
@@ -238,9 +242,13 @@
void ShowCaret();
void HideCaret();
+ wxUint32 getAddressFromPos(int pos);
+ int getPosFromAddress(wxUint32 address);
int getRowFromAddress(wxUint32 address);
int getColFromAddress(wxUint32 address);
- wxUint32 getAddress(int row, int col);
+ wxUint32 getAddressFromRowCol(int row, int col);
+ bool isPosValid(int pos);
+ bool isAddressValid(wxUint32 address, bool onlyOneByte = false);
/*! This function calls pdc->TextOut ( x, y, strText ) function if text overlaps with rcInvalid.*/
void TextOutWithCheck(wxDC& dc, const wxRect& rcInvalid, int x, int y, const wxString& strText);
Modified: scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/FileInfoPresenter.cpp
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/FileInfoPresenter.cpp 2007-07-21 14:39:12 UTC (rev 28155)
+++ scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/FileInfoPresenter.cpp 2007-07-21 16:28:32 UTC (rev 28156)
@@ -48,9 +48,9 @@
wxBoxSizer *panelsizer = new wxBoxSizer( wxVERTICAL );
- wxTextCtrl *textCtrl = new wxTextCtrl(panel, wxID_ANY, text, wxPoint(5,5), wxSize(200,200), wxTE_READONLY | wxTE_RICH | wxTE_MULTILINE, wxDefaultValidator, wxT("textCtrl"));
+ wxTextCtrl *textCtrl = new wxTextCtrl(panel, wxID_ANY, text, wxDefaultPosition, wxDefaultSize, wxTE_READONLY | wxTE_RICH | wxTE_MULTILINE, wxDefaultValidator, wxT("textCtrl"));
panelsizer->Add(textCtrl, 1, wxALL|wxEXPAND, 0);
- wxButton *dumpButton = new wxButton(panel, wxID_ANY, wxT("Dump File"), wxPoint(167,450), wxSize(75,25), 0, wxDefaultValidator, wxT("dumpButton"));
+ wxButton *dumpButton = new wxButton(panel, wxID_ANY, wxT("Dump File"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT, wxDefaultValidator, wxT("dumpButton"));
panelsizer->Add(dumpButton, 0, wxALL, 0);
panel->SetAutoLayout(true);
Modified: scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/ImagePresenter.cpp
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/ImagePresenter.cpp 2007-07-21 14:39:12 UTC (rev 28155)
+++ scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/ImagePresenter.cpp 2007-07-21 16:28:32 UTC (rev 28156)
@@ -61,19 +61,28 @@
_bmpPanel->GetImage() = *_image;
panelsizer->Add(_bmpPanel, 1, wxALL|wxEXPAND, 0);
+ wxBoxSizer *staticsizer = new wxBoxSizer( wxHORIZONTAL );
+
+ wxString info;
+ info << wxT("Width: ") << _image->GetWidth();
+ info << wxT(" Height: ") << _image->GetHeight();
+ wxStaticText *infoStatic = new wxStaticText(panel, wxID_ANY, info);
+ staticsizer->Add(infoStatic, 0, wxALL, 0);
+
wxBoxSizer *buttonsizer = new wxBoxSizer( wxHORIZONTAL );
- wxButton *dumpButton = new wxButton(panel, wxID_ANY, wxT("Dump Image"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, wxT("dumpButton"));
- buttonsizer->Add(dumpButton, 0, wxALL, 0);
- wxButton *autoScaleButton = new wxButton(panel, wxID_ANY, wxT("Autoscale"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, wxT("dumpButton"));
- buttonsizer->Add(autoScaleButton, 0, wxALL, 0);
+ wxButton *dumpButton = new wxButton(panel, wxID_ANY, wxT("Dump Image"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT, wxDefaultValidator, wxT("dumpButton"));
+ buttonsizer->Add(dumpButton, 0, wxALL, 0);
+ wxButton *autoScaleButton = new wxButton(panel, wxID_ANY, wxT("Autoscale"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT, wxDefaultValidator, wxT("dumpButton"));
+ buttonsizer->Add(autoScaleButton, 0, wxALL, 0);
wxButton *origScaleButton = new wxButton(panel, wxID_ANY, wxT("100%"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT, wxDefaultValidator, wxT("dumpButton"));
- buttonsizer->Add(origScaleButton, 0, wxALL, 0);
+ buttonsizer->Add(origScaleButton, 0, wxALL, 0);
wxButton *scaleUpButton = new wxButton(panel, wxID_ANY, wxT("+"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT, wxDefaultValidator, wxT("dumpButton"));
- buttonsizer->Add(scaleUpButton, 0, wxALL, 0);
+ buttonsizer->Add(scaleUpButton, 0, wxALL, 0);
wxButton *scaleDownButton = new wxButton(panel, wxID_ANY, wxT("-"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT, wxDefaultValidator, wxT("dumpButton"));
buttonsizer->Add(scaleDownButton, 0, wxALL, 0);
+ panelsizer->Add(staticsizer, 0, wxALL, 0);
panelsizer->Add(buttonsizer, 0, wxALL, 0);
panel->SetAutoLayout(true);
panel->SetSizer(panelsizer);
Modified: scummex/branches/gsoc2007-gameresbrowser/wxdev/Browser.layout
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/wxdev/Browser.layout 2007-07-21 14:39:12 UTC (rev 28155)
+++ scummex/branches/gsoc2007-gameresbrowser/wxdev/Browser.layout 2007-07-21 16:28:32 UTC (rev 28156)
@@ -1,9 +1,9 @@
[Editor_4]
-CursorCol=3
-CursorRow=68
-TopLine=38
+CursorCol=55
+CursorRow=27
+TopLine=10
LeftChar=1
-Open=0
+Open=1
Top=0
[Editor_5]
CursorCol=1
@@ -25,7 +25,7 @@
TopLine=1
LeftChar=1
Open=1
-Top=1
+Top=0
[Editor_1]
CursorCol=1
CursorRow=1
@@ -44,12 +44,12 @@
TopLine=1
LeftChar=1
[Editor_7]
-CursorCol=1
-CursorRow=171
-TopLine=141
+CursorCol=64
+CursorRow=148
+TopLine=89
LeftChar=1
Open=1
-Top=0
+Top=1
[Editor_6]
CursorCol=1
CursorRow=57
@@ -59,8 +59,8 @@
Top=0
[Editor_8]
CursorCol=1
-CursorRow=114
-TopLine=114
+CursorRow=42
+TopLine=24
LeftChar=1
Open=1
Top=0
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list