Mercurial > foo_out_sdl
comparison foosdk/sdk/libPPUI/InPlaceEditTable.h @ 1:20d02a178406 default tip
*: check in everything else
yay
| author | Paper <paper@tflc.us> |
|---|---|
| date | Mon, 05 Jan 2026 02:15:46 -0500 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 0:e9bb126753e7 | 1:20d02a178406 |
|---|---|
| 1 #pragma once | |
| 2 | |
| 3 #include <memory> | |
| 4 #include "InPlaceEdit.h" | |
| 5 | |
| 6 namespace InPlaceEdit { | |
| 7 class NOVTABLE CTableEditHelperV2 { | |
| 8 public: | |
| 9 virtual RECT TableEdit_GetItemRect(t_size item, t_size subItem) const = 0; | |
| 10 virtual void TableEdit_GetField(t_size item, t_size subItem, pfc::string_base & out, t_size & lineCount) = 0; | |
| 11 virtual void TableEdit_SetField(t_size item, t_size subItem, const char * value) = 0; | |
| 12 virtual HWND TableEdit_GetParentWnd() const = 0; | |
| 13 virtual bool TableEdit_Advance(t_size & item, t_size & subItem, t_uint32 whathappened); | |
| 14 virtual bool TableEdit_CanAdvanceHere(size_t item, size_t subItem, uint32_t whatHappened) const { (void)item; (void)subItem; (void)whatHappened; return true; } | |
| 15 virtual void TableEdit_Finished() {} | |
| 16 virtual t_size TableEdit_GetItemCount() const = 0; | |
| 17 virtual t_size TableEdit_GetColumnCount() const = 0; | |
| 18 virtual void TableEdit_SetItemFocus(t_size item, t_size subItem) = 0; | |
| 19 virtual bool TableEdit_IsColumnEditable(t_size subItem) const { (void)subItem; return true; } | |
| 20 virtual void TableEdit_GetColumnOrder(t_size * out, t_size count) const { order_helper::g_fill(out, count); } | |
| 21 virtual t_uint32 TableEdit_GetEditFlags(t_size item, t_size subItem) const { (void)item; (void)subItem; return 0; } | |
| 22 virtual bool TableEdit_GetDarkMode() const { return false; } | |
| 23 virtual bool TableEdit_GetAutoComplete(t_size item, t_size subItem, pfc::com_ptr_t<IUnknown>& out) { (void)item; (void)subItem; (void)out; return false; } | |
| 24 | |
| 25 struct autoComplete_t { | |
| 26 pfc::com_ptr_t<IUnknown> data; | |
| 27 enum { // ACO_* equivalents | |
| 28 optsNone = 0, | |
| 29 optsDefault = 1, | |
| 30 optsAutoSuggest = 1, | |
| 31 optsAutoAppend = 3, | |
| 32 }; | |
| 33 DWORD options = optsNone; | |
| 34 }; | |
| 35 virtual autoComplete_t TableEdit_GetAutoCompleteEx( size_t item, size_t sub ); | |
| 36 | |
| 37 struct combo_t { | |
| 38 unsigned iDefault = 0; | |
| 39 pfc::string_list_impl strings; | |
| 40 }; | |
| 41 | |
| 42 virtual combo_t TableEdit_GetCombo(size_t item, size_t sub); | |
| 43 | |
| 44 HWND TableEdit_Start(t_size item, t_size subItem); | |
| 45 void TableEdit_Abort(bool forwardContent); | |
| 46 bool TableEdit_IsActive() const { return !!m_taskKill; } | |
| 47 protected: | |
| 48 ~CTableEditHelperV2() { tableEdit_cancel_task(); } | |
| 49 CTableEditHelperV2() {} | |
| 50 private: | |
| 51 void tableEdit_on_task_completion(unsigned p_status); | |
| 52 reply_t tableEdit_create_task(); | |
| 53 bool tableEdit_cancel_task(); | |
| 54 | |
| 55 t_size ColumnToPosition(t_size col) const; | |
| 56 t_size PositionToColumn(t_size pos) const; | |
| 57 t_size EditableColumnCount() const; | |
| 58 void GrabColumnOrder(pfc::array_t<t_size> & buffer) const { buffer.set_size(TableEdit_GetColumnCount()); TableEdit_GetColumnOrder(buffer.get_ptr(), buffer.get_size()); } | |
| 59 HWND _ReStart(); | |
| 60 | |
| 61 t_size m_editItem = SIZE_MAX, m_editSubItem = SIZE_MAX; | |
| 62 t_uint32 m_editFlags = 0; | |
| 63 pfc::rcptr_t<pfc::string8> m_editData; | |
| 64 std::shared_ptr< combo_t > m_editDataCombo; | |
| 65 | |
| 66 std::shared_ptr<bool> m_taskKill; | |
| 67 | |
| 68 CTableEditHelperV2( const CTableEditHelperV2 & ) = delete; | |
| 69 void operator=( const CTableEditHelperV2 & ) = delete; | |
| 70 }; | |
| 71 | |
| 72 | |
| 73 | |
| 74 | |
| 75 class NOVTABLE CTableEditHelperV2_ListView : public CTableEditHelperV2 { | |
| 76 public: | |
| 77 RECT TableEdit_GetItemRect(t_size item, t_size subItem) const override; | |
| 78 void TableEdit_GetField(t_size item, t_size subItem, pfc::string_base & out, t_size & lineCount) override; | |
| 79 void TableEdit_SetField(t_size item, t_size subItem, const char * value) override; | |
| 80 | |
| 81 t_size TableEdit_GetColumnCount() const override; | |
| 82 | |
| 83 t_size TableEdit_GetItemCount() const override; | |
| 84 void TableEdit_SetItemFocus(t_size item, t_size subItem) override; | |
| 85 | |
| 86 void TableEdit_GetColumnOrder(t_size * out, t_size count) const override; | |
| 87 }; | |
| 88 } |
