diff --git a/uppsrc/CtrlLib/ArrayCtrl.cpp b/uppsrc/CtrlLib/ArrayCtrl.cpp index bbc211d8a..3a345d6a1 100644 --- a/uppsrc/CtrlLib/ArrayCtrl.cpp +++ b/uppsrc/CtrlLib/ArrayCtrl.cpp @@ -2554,6 +2554,16 @@ ArrayCtrl& ArrayCtrl::ColumnWidths(const char *s) return *this; } +String ArrayCtrl::GetColumnWidths() +{ + String text; + for(int i = 0; i < header.GetCount(); i++) + text << Format(i ? " %d" : "%d", + header.GetMode() == HeaderCtrl::SCROLL ? (int)header[i].GetRatio() + : header.GetTabWidth(i)); + return text; +} + ArrayCtrl& ArrayCtrl::OddRowColor(Color paper, Color ink) { oddpaper = paper; diff --git a/uppsrc/CtrlLib/ArrayCtrl.h b/uppsrc/CtrlLib/ArrayCtrl.h index cbac87848..4e1b55874 100644 --- a/uppsrc/CtrlLib/ArrayCtrl.h +++ b/uppsrc/CtrlLib/ArrayCtrl.h @@ -637,6 +637,7 @@ public: ArrayCtrl& NoColumnSortSecondary() { columnsortsecondary = NULL; return *this; } ArrayCtrl& ColumnWidths(const char *s); + String GetColumnWidths(); ArrayCtrl& SetScrollBarStyle(const ScrollBar::Style& s) { sb.SetStyle(s); header.SetScrollBarStyle(s); return *this; } ArrayCtrl& SetHeaderCtrlStyle(const HeaderCtrl::Style& s) { header.SetStyle(s); return *this; } diff --git a/uppsrc/CtrlLib/HeaderCtrl.cpp b/uppsrc/CtrlLib/HeaderCtrl.cpp index ad4492a90..f3b01d203 100644 --- a/uppsrc/CtrlLib/HeaderCtrl.cpp +++ b/uppsrc/CtrlLib/HeaderCtrl.cpp @@ -550,6 +550,10 @@ void HeaderCtrl::LeftDown(Point p, dword keyflags) { } li = pushi = -1 - split; col[pushi].WhenLeftClick(); +#ifdef _DEBUG + if((keyflags & K_ALT) && pushi >= 0) + WriteClipboardText(AsString(GetTabWidth(pushi))); +#endif if(pushi >= 0) { if(!col[pushi].WhenAction) { pushi = -1; diff --git a/uppsrc/CtrlLib/HeaderCtrl.h b/uppsrc/CtrlLib/HeaderCtrl.h index 070f800ec..cbdf75dce 100644 --- a/uppsrc/CtrlLib/HeaderCtrl.h +++ b/uppsrc/CtrlLib/HeaderCtrl.h @@ -56,7 +56,7 @@ public: Column& Tip(const char *s) { tip = s; return *this; } Column& SetPaper(Color c) { paper = c; return *this; } Column& SetRatio(double ratio); - Column& SetMargin(int m); + Column& SetMargin(int m) ; void Show(bool b = true); void Hide() { Show(false); } @@ -65,6 +65,7 @@ public: Color GetPaper() const { return paper; } int GetIndex() const { return index; } bool IsVisible() const { return visible; } + double GetRatio() const { return ratio; } Column(); }; diff --git a/uppsrc/CtrlLib/src.tpp/ArrayCtrl$en-us.tpp b/uppsrc/CtrlLib/src.tpp/ArrayCtrl$en-us.tpp index 22b974321..1589e9830 100644 --- a/uppsrc/CtrlLib/src.tpp/ArrayCtrl$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/ArrayCtrl$en-us.tpp @@ -1229,6 +1229,10 @@ blank`-separated decimal numbers, e.g. `"1 4 6 4 1`".&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] [s4;%- &] +[s5;:ArrayCtrl`:`:GetColumnWidths`(`):%- [_^String^ String]_[* GetColumnWidths]()&] +[s2; Returns current column widths in format compatible with ColumnWidths.&] +[s3;%- &] +[s4;%- &] [s5;:ArrayCtrl`:`:CursorOverride`(const Image`&`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `& ]_[* CursorOverride]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 arrow])&] [s2; Overrides mouse cursor to [%-*@3 arrow]. Setting Null ends override.&]