From 17628a8bd5bda10918098d557e4a505f9d9ae4be Mon Sep 17 00:00:00 2001 From: Basile Burg Date: Fri, 30 Sep 2016 09:55:53 +0200 Subject: [PATCH] #97, update ui --- src/ce_gdb.lfm | 247 ++++++++++++++++++++++++++++++------------------- src/ce_gdb.pas | 16 +++- 2 files changed, 165 insertions(+), 98 deletions(-) diff --git a/src/ce_gdb.lfm b/src/ce_gdb.lfm index 72a4fe89..74cc69f2 100644 --- a/src/ce_gdb.lfm +++ b/src/ce_gdb.lfm @@ -8,118 +8,170 @@ inherited CEGdbWidget: TCEGdbWidget ClientHeight = 625 ClientWidth = 517 inherited Back: TPanel - Height = 625 + Height = 619 + Top = 6 Width = 517 - ClientHeight = 625 + ClientHeight = 619 ClientWidth = 517 inherited Content: TPanel - Height = 589 + Height = 583 Width = 517 - ClientHeight = 589 + ClientHeight = 583 ClientWidth = 517 - object Panel2: TPanel[0] + object Panel1: TPanel[0] Left = 0 - Height = 589 - Top = 0 + Height = 381 + Top = 166 Width = 517 Align = alClient BevelOuter = bvNone - Caption = 'Panel2' - ClientHeight = 589 + ClientHeight = 381 ClientWidth = 517 TabOrder = 0 - object Panel3: TPanel - Left = 4 - Height = 28 - Top = 557 - Width = 509 - Align = alBottom - BorderSpacing.Around = 4 - BevelOuter = bvNone - ClientHeight = 28 - ClientWidth = 509 - TabOrder = 0 - object btnSendCom: TSpeedButton - Left = 479 - Height = 24 - Top = 2 - Width = 28 - Align = alRight - BorderSpacing.Around = 2 - OnClick = btnSendComClick - end - object Edit1: TComboBox - Left = 0 - Height = 28 - Hint = 'custom GDB command' - Top = 0 - Width = 477 - Align = alClient - AutoComplete = True - AutoCompleteText = [cbactEnabled, cbactEndOfLineComplete, cbactSearchAscending] - ItemHeight = 0 - MaxLength = 64 - OnKeyUp = Edit1KeyUp - TabOrder = 0 - end - end - object stateViewer: TTIPropertyGrid - Left = 0 - Height = 207 - Top = 346 - Width = 517 - Align = alClient - CheckboxForBoolean = True - DefaultValueFont.Color = clWindowText - Filter = [tkUnknown, tkInteger, tkChar, tkEnumeration, tkFloat, tkSet, tkMethod, tkSString, tkLString, tkAString, tkWString, tkVariant, tkArray, tkRecord, tkInterface, tkClass, tkObject, tkWChar, tkBool, tkInt64, tkQWord, tkDynArray, tkInterfaceRaw, tkProcVar, tkUString, tkUChar, tkHelper, tkFile, tkClassRef, tkPointer] - Indent = 10 - NameFont.Color = clWindowText - PreferredSplitterX = 200 - SplitterX = 200 - ValueFont.Color = clMaroon - end - object lstCallStack: TListView + object GroupBox3: TGroupBox Left = 0 Height = 184 - Hint = 'call stack' + Top = 197 + Width = 517 + Align = alClient + Caption = 'CPU' + ClientHeight = 154 + ClientWidth = 513 + TabOrder = 0 + object cpuVIewer: TTIPropertyGrid + Left = 0 + Height = 154 + Hint = 'cpu registers' + Top = 0 + Width = 513 + Align = alClient + CheckboxForBoolean = True + DefaultValueFont.Color = clWindowText + Filter = [tkUnknown, tkInteger, tkChar, tkEnumeration, tkFloat, tkSet, tkMethod, tkSString, tkLString, tkAString, tkWString, tkVariant, tkArray, tkRecord, tkInterface, tkClass, tkObject, tkWChar, tkBool, tkInt64, tkQWord, tkDynArray, tkInterfaceRaw, tkProcVar, tkUString, tkUChar, tkHelper, tkFile, tkClassRef, tkPointer] + Indent = 10 + NameFont.Color = clWindowText + PreferredSplitterX = 200 + SplitterX = 200 + ValueFont.Color = clMaroon + end + end + object GroupBox2: TGroupBox + Left = 0 + Height = 191 Top = 0 Width = 517 Align = alTop - Columns = <> - TabOrder = 2 + Caption = 'Variables' + ClientHeight = 161 + ClientWidth = 513 + TabOrder = 1 + object ValueListEditor1: TValueListEditor + Left = 4 + Height = 153 + Hint = 'variables' + Top = 4 + Width = 505 + Align = alClient + AutoAdvance = aaDown + BorderSpacing.Around = 4 + BorderStyle = bsNone + Color = clDefault + DefaultColWidth = 128 + DefaultRowHeight = 24 + FixedCols = 0 + Flat = True + GridLineWidth = 0 + RowCount = 2 + TabOrder = 0 + Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goColSizing, goAlwaysShowEditor, goThumbTracking] + Strings.Strings = ( + '' + ) + TitleCaptions.Strings = ( + 'name' + 'value' + ) + ColWidths = ( + 128 + 377 + ) + end end - object ValueListEditor1: TValueListEditor - Left = 2 - Height = 158 - Hint = 'variables' - Top = 186 - Width = 513 + object Splitter4: TSplitter + Cursor = crVSplit + Left = 0 + Height = 6 + Top = 191 + Width = 517 Align = alTop - AutoAdvance = aaDown - BorderSpacing.Around = 2 - BorderStyle = bsNone - Color = clDefault - DefaultColWidth = 128 - DefaultRowHeight = 24 - FixedCols = 0 - Flat = True - GridLineWidth = 0 - RowCount = 2 - TabOrder = 3 - Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goColSizing, goAlwaysShowEditor, goThumbTracking] - Strings.Strings = ( - '' - ) - TitleCaptions.Strings = ( - 'name' - 'value' - ) - ColWidths = ( - 128 - 385 - ) + ResizeAnchor = akTop end end + object Panel3: TPanel[1] + Left = 4 + Height = 28 + Top = 551 + Width = 509 + Align = alBottom + BorderSpacing.Around = 4 + BevelOuter = bvNone + ClientHeight = 28 + ClientWidth = 509 + TabOrder = 1 + object btnSendCom: TSpeedButton + Left = 480 + Height = 26 + Top = 1 + Width = 28 + Align = alRight + BorderSpacing.Around = 1 + OnClick = btnSendComClick + end + object Edit1: TComboBox + Left = 0 + Height = 28 + Hint = 'custom GDB command' + Top = 0 + Width = 479 + Align = alClient + AutoComplete = True + AutoCompleteText = [cbactEnabled, cbactEndOfLineComplete, cbactSearchAscending] + ItemHeight = 0 + MaxLength = 64 + OnKeyUp = Edit1KeyUp + TabOrder = 0 + end + end + object GroupBox1: TGroupBox[2] + Left = 0 + Height = 161 + Top = 0 + Width = 517 + Align = alTop + Caption = 'Call stack' + ClientHeight = 131 + ClientWidth = 513 + TabOrder = 2 + object lstCallStack: TListView + Left = 0 + Height = 131 + Hint = 'call stack' + Top = 0 + Width = 513 + Align = alClient + Columns = <> + TabOrder = 0 + end + end + object Splitter3: TSplitter[3] + Cursor = crVSplit + Left = 0 + Height = 5 + Top = 161 + Width = 517 + Align = alTop + ResizeAnchor = akTop + end end inherited toolbar: TCEToolBar Width = 509 @@ -215,7 +267,16 @@ inherited CEGdbWidget: TCEGdbWidget end end end - inherited contextMenu: TPopupMenu + object Splitter2: TSplitter[1] + Cursor = crVSplit + Left = 0 + Height = 6 + Top = 0 + Width = 517 + Align = alTop + ResizeAnchor = akTop + end + inherited contextMenu: TPopupMenu[2] left = 56 top = 64 end diff --git a/src/ce_gdb.pas b/src/ce_gdb.pas index 57d9c537..97119cc0 100644 --- a/src/ce_gdb.pas +++ b/src/ce_gdb.pas @@ -313,11 +313,17 @@ type btnStop: TCEToolButton; button4: TCEToolButton; Edit1: TComboBox; + GroupBox1: TGroupBox; + GroupBox2: TGroupBox; + GroupBox3: TGroupBox; lstCallStack: TListView; - Panel2: TPanel; + Panel1: TPanel; Panel3: TPanel; btnSendCom: TSpeedButton; - stateViewer: TTIPropertyGrid; + cpuVIewer: TTIPropertyGrid; + Splitter2: TSplitter; + Splitter3: TSplitter; + Splitter4: TSplitter; ValueListEditor1: TValueListEditor; procedure btnContClick(Sender: TObject); procedure btnVariablesClick(Sender: TObject); @@ -813,7 +819,7 @@ begin fFileLineBrks:= TStringList.Create; fLog := TStringList.Create; fInspState := TInspectableCPU.Create(@setGpr, @setSsr, @setFlag, @setFpr); - stateViewer.TIObject := fInspState; + cpuVIewer.TIObject := fInspState; fJson := TJsonObject.Create; fStackItems := TStackItems.create; fSubj:= TCEDebugObserverSubject.Create; @@ -1176,7 +1182,7 @@ end; procedure TCEGdbWidget.disableEditor; begin - stateViewer.ItemIndex:=-1; + cpuVIewer.ItemIndex:=-1; end; procedure TCEGdbWidget.startDebugging; @@ -1646,7 +1652,7 @@ begin // TODO-cGDB: get SSE registers end; end; - stateViewer.RefreshPropertyValues; + cpuVIewer.RefreshPropertyValues; end; val := fJson.Find('stack');