diff --git a/ChangeLog b/ChangeLog index c70d6bde..cf621370 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,6 @@ +2017-09-20 Markus Gans + * New data type FStringList introduced + 2017-09-19 Markus Gans * FString has now got its own streaming functionality for inbound and outbound type conversion diff --git a/autogen.sh b/autogen.sh index 86e469e5..9d9eb8c6 100755 --- a/autogen.sh +++ b/autogen.sh @@ -19,7 +19,7 @@ automake --add-missing --copy #autoreconf -v --install --force echo -echo 'run "./configure ; make"' +echo 'run "./configure --prefix=/usr && make"' echo # Generate Makefile from Makefile.in diff --git a/examples/listview.cpp b/examples/listview.cpp index d5c0c9cb..e1c597c6 100644 --- a/examples/listview.cpp +++ b/examples/listview.cpp @@ -111,7 +111,7 @@ Listview::Listview (FWidget* parent) for (int i = 0; i <= lastItem; i++) { - std::vector line (&weather[i][0], &weather[i][0] + 5); + FStringList line (&weather[i][0], &weather[i][0] + 5); listView->insert (line); } diff --git a/examples/string-operations.cpp b/examples/string-operations.cpp index 815bc975..2e95860d 100644 --- a/examples/string-operations.cpp +++ b/examples/string-operations.cpp @@ -321,8 +321,8 @@ int main (int, char**) FString split_str = "a,b,c,d"; std::cout << " split: \"" << split_str << "\" into substrings ->"; - std::vector parts = split_str.split(","); - std::vector::iterator it, end; + FStringList parts = split_str.split(","); + FStringList::iterator it, end; end = parts.end(); for (it = parts.begin(); it != end; ++it) diff --git a/examples/treeview.cpp b/examples/treeview.cpp index c13509f1..a78d8810 100644 --- a/examples/treeview.cpp +++ b/examples/treeview.cpp @@ -76,14 +76,14 @@ Treeview::Treeview (FWidget* parent) for (int i = 0; i <= lastItem; i++) { - std::vector line (&continent[i][0], &continent[i][0] + 3); + FStringList line (&continent[i][0], &continent[i][0] + 3); listView->insert (line); } FObjectIterator iter_africa = listView->beginOfList(); std::string egypt[3] = { "Egypt", "94,666,000", "87" }; - std::vector egypt_line (&egypt[0], &egypt[0] + 3); + FStringList egypt_line (&egypt[0], &egypt[0] + 3); //FObjectIterator iter_africa = listView->insert (egypt_line); listView->insert (egypt_line, iter_africa); diff --git a/include/final/flabel.h b/include/final/flabel.h index bed830bf..83b15ff8 100644 --- a/include/final/flabel.h +++ b/include/final/flabel.h @@ -105,9 +105,6 @@ class FLabel : public FWidget void cb_accel_widget_destroyed (FWidget*, data_ptr); private: - // Typedef - typedef std::vector multiLineText; - // Disable copy constructor FLabel (const FLabel&); @@ -124,7 +121,7 @@ class FLabel : public FWidget void draw(); // Data Members - multiLineText multiline_text; + FStringList multiline_text; bool multiline; FString text; fc::text_alignment alignment; diff --git a/include/final/flistview.h b/include/final/flistview.h index c12bc17c..98437cce 100644 --- a/include/final/flistview.h +++ b/include/final/flistview.h @@ -54,7 +54,7 @@ class FListViewItem : public FObject // Constructor FListViewItem (const FListViewItem&); // copy constructor explicit FListViewItem (FObjectIterator); - FListViewItem ( const std::vector& + FListViewItem ( const FStringList& , FWidget::data_ptr , FObjectIterator ); @@ -92,11 +92,11 @@ class FListViewItem : public FObject int getVisibleLines(); // Data Member - std::vector column_list; - FWidget::data_ptr data_pointer; - int visible_lines; - bool expandable; - bool is_expand; + FStringList column_list; + FWidget::data_ptr data_pointer; + int visible_lines; + bool expandable; + bool is_expand; // Friend class friend class FListView; @@ -160,11 +160,11 @@ class FListView : public FWidget virtual int addColumn (const FString&, int = USE_MAX_SIZE); FObjectIterator insert (FListViewItem*); FObjectIterator insert (FListViewItem*, FObjectIterator); - FObjectIterator insert ( const std::vector& + FObjectIterator insert ( const FStringList& , data_ptr = 0 ); - FObjectIterator insert ( const std::vector& + FObjectIterator insert ( const FStringList& , FObjectIterator ); - FObjectIterator insert ( const std::vector& + FObjectIterator insert ( const FStringList& , data_ptr , FObjectIterator ); FObjectIterator insert ( const std::vector& @@ -306,12 +306,12 @@ inline FObject::FObjectIterator FListView::insert (FListViewItem* item) //---------------------------------------------------------------------- inline FObject::FObjectIterator - FListView::insert ( const std::vector& cols, data_ptr d ) + FListView::insert ( const FStringList& cols, data_ptr d ) { return insert (cols, d, root); } //---------------------------------------------------------------------- inline FObject::FObjectIterator - FListView::insert ( const std::vector& cols + FListView::insert ( const FStringList& cols , FObjectIterator parent_iter ) { return insert (cols, 0, parent_iter); } diff --git a/include/final/fmessagebox.h b/include/final/fmessagebox.h index bd6176bf..9de96316 100644 --- a/include/final/fmessagebox.h +++ b/include/final/fmessagebox.h @@ -122,9 +122,6 @@ class FMessageBox : public FDialog void cb_processClick (FWidget*, data_ptr); private: - // Typedef - typedef std::vector textLines; - // Methods void init (int, int, int); void calculateDimensions(); @@ -136,7 +133,7 @@ class FMessageBox : public FDialog FString headline_text; FString text; FString* text_components; - textLines text_split; + FStringList text_split; uInt max_line_width; bool center_text; short emphasis_color; diff --git a/include/final/fstring.h b/include/final/fstring.h index 4e9d7958..66f851e2 100644 --- a/include/final/fstring.h +++ b/include/final/fstring.h @@ -33,6 +33,11 @@ #include "final/ftypes.h" +// class forward declaration +class FString; + +// Global typedef +typedef std::vector FStringList; //---------------------------------------------------------------------- // class FString @@ -230,13 +235,13 @@ class FString FString mid (int, int) const; FString mid (uInt, uInt) const; - std::vector split (const FString&); - std::vector split (const std::wstring&); - std::vector split (const wchar_t*); - std::vector split (const std::string&); - std::vector split (const char*); - std::vector split (const wchar_t); - std::vector split (const char); + FStringList split (const FString&); + FStringList split (const std::wstring&); + FStringList split (const wchar_t*); + FStringList split (const std::string&); + FStringList split (const char*); + FStringList split (const wchar_t); + FStringList split (const char); FString& setString (const wchar_t*); FString& setString (const char*); @@ -390,27 +395,27 @@ inline wchar_t FString::back() const } //---------------------------------------------------------------------- -inline std::vector FString::split (const std::wstring& s) +inline FStringList FString::split (const std::wstring& s) { return split(FString(s)); } //---------------------------------------------------------------------- -inline std::vector FString::split (const wchar_t* s) +inline FStringList FString::split (const wchar_t* s) { return split(FString(s)); } //---------------------------------------------------------------------- -inline std::vector FString::split (const std::string& s) +inline FStringList FString::split (const std::string& s) { return split(FString(s)); } //---------------------------------------------------------------------- -inline std::vector FString::split (const char* s) +inline FStringList FString::split (const char* s) { return split(FString(s)); } //---------------------------------------------------------------------- -inline std::vector FString::split (const wchar_t c) +inline FStringList FString::split (const wchar_t c) { return split(FString(c)); } //---------------------------------------------------------------------- -inline std::vector FString::split (const char c) +inline FStringList FString::split (const char c) { return split(FString(c)); } //---------------------------------------------------------------------- diff --git a/include/final/ftextview.h b/include/final/ftextview.h index 48ddc6d9..5f112c36 100644 --- a/include/final/ftextview.h +++ b/include/final/ftextview.h @@ -50,9 +50,6 @@ class FTextView : public FWidget // Using-declarations using FWidget::setGeometry; - // Typedef - typedef std::vector stringLines; - // Constructor explicit FTextView (FWidget* = 0); @@ -64,7 +61,7 @@ class FTextView : public FWidget uInt getColumns() const; uInt getRows() const; const FString getText() const; - const stringLines& getLines() const; + const FStringList& getLines() const; // Mutators void setGeometry (int, int, int, int, bool = true); @@ -101,23 +98,23 @@ class FTextView : public FWidget FTextView& operator = (const FTextView&); // Methods - void init(); - void draw(); - void drawText(); - void processChanged(); + void init(); + void draw(); + void drawText(); + void processChanged(); // Callback methods - void cb_VBarChange (FWidget*, data_ptr); - void cb_HBarChange (FWidget*, data_ptr); + void cb_VBarChange (FWidget*, data_ptr); + void cb_HBarChange (FWidget*, data_ptr); // Data Members - stringLines data; - FScrollbar* vbar; - FScrollbar* hbar; - int xoffset; - int yoffset; - int nf_offset; - uInt maxLineWidth; + FStringList data; + FScrollbar* vbar; + FScrollbar* hbar; + int xoffset; + int yoffset; + int nf_offset; + uInt maxLineWidth; }; #pragma pack(pop) @@ -136,7 +133,7 @@ inline uInt FTextView::getRows() const { return uInt(data.size()); } //---------------------------------------------------------------------- -inline const FTextView::stringLines& FTextView::getLines() const +inline const FStringList& FTextView::getLines() const { return data; } //---------------------------------------------------------------------- diff --git a/include/final/ftooltip.h b/include/final/ftooltip.h index 7d33336f..22b4896f 100644 --- a/include/final/ftooltip.h +++ b/include/final/ftooltip.h @@ -71,9 +71,6 @@ class FToolTip : public FWindow void onMouseDown (FMouseEvent*); private: - // Typedef - typedef std::vector textLines; - // Disable copy constructor FToolTip (const FToolTip&); @@ -88,7 +85,7 @@ class FToolTip : public FWindow // Data Members FString text; FString* text_components; - textLines text_split; + FStringList text_split; uInt max_line_width; uInt text_num_lines; }; diff --git a/src/flistview.cpp b/src/flistview.cpp index c63bcd4a..25eb5c4b 100644 --- a/src/flistview.cpp +++ b/src/flistview.cpp @@ -52,7 +52,7 @@ FListViewItem::FListViewItem (FObjectIterator parent_iter) } //---------------------------------------------------------------------- -FListViewItem::FListViewItem ( const std::vector& cols +FListViewItem::FListViewItem ( const FStringList& cols , FWidget::data_ptr data , FObjectIterator parent_iter ) : FObject(0) @@ -195,7 +195,7 @@ FObject::FObjectIterator FListViewItem::appendItem (FListViewItem* child) void FListViewItem::replaceControlCodes() { // Replace the control codes characters - std::vector::iterator iter = column_list.begin(); + FStringList::iterator iter = column_list.begin(); while ( iter != column_list.end() ) { @@ -432,7 +432,7 @@ FObject::FObjectIterator FListView::insert ( FListViewItem* item } //---------------------------------------------------------------------- -FObject::FObjectIterator FListView::insert ( const std::vector& cols +FObject::FObjectIterator FListView::insert ( const FStringList& cols , data_ptr d , FObjectIterator parent_iter ) { @@ -464,7 +464,7 @@ FObject::FObjectIterator FListView::insert ( const std::vector& cols , FObjectIterator parent_iter ) { FObjectIterator item_iter; - std::vector str_cols; + FStringList str_cols; if ( ! cols.empty() ) { diff --git a/src/fstring.cpp b/src/fstring.cpp index aacac103..8524c02b 100644 --- a/src/fstring.cpp +++ b/src/fstring.cpp @@ -1154,27 +1154,27 @@ FString FString::mid (uInt pos, uInt len) const } //---------------------------------------------------------------------- -std::vector FString::split (const FString& delimiter) +FStringList FString::split (const FString& delimiter) { wchar_t* rest; wchar_t* token; FString s(string); - std::vector stringList; + FStringList string_list; // handle NULL and empty string if ( ! (string && *string) ) - return stringList; + return string_list; rest = 0; token = extractToken(&rest, s.string, delimiter.wc_str()); while ( token ) { - stringList.push_back (FString(token)); + string_list.push_back (FString(token)); token = extractToken (&rest, 0, delimiter.wc_str()); } - return stringList; + return string_list; } //---------------------------------------------------------------------- @@ -2217,7 +2217,7 @@ FString FString::replaceControlCodes() const FString FString::expandTabs (int tabstop) const { uLong last; - std::vector tab_split; + FStringList tab_split; FString instr(string); FString outstr; diff --git a/src/fterm.cpp b/src/fterm.cpp index 559c6b2e..08a38752 100644 --- a/src/fterm.cpp +++ b/src/fterm.cpp @@ -2722,16 +2722,16 @@ char* FTerm::parseSecDA (char*& current_termtype) // remove the last byte ("c") temp.remove(temp.getLength() - 1, 1); // split into components - std::vector sec_da_split = temp.split(';'); + FStringList sec_da_list = temp.split(';'); - num_components = sec_da_split.size(); + num_components = sec_da_list.size(); if ( num_components == 3 ) sec_da_supported = true; if ( num_components >= 2 ) { - const FString* sec_da_components = &sec_da_split[0]; + const FString* sec_da_components = &sec_da_list[0]; if ( ! sec_da_components[0].isEmpty() ) { diff --git a/src/ftextview.cpp b/src/ftextview.cpp index f22393a9..b6185d4f 100644 --- a/src/ftextview.cpp +++ b/src/ftextview.cpp @@ -182,8 +182,8 @@ void FTextView::append (const FString& str) //---------------------------------------------------------------------- void FTextView::insert (const FString& str, int pos) { - stringLines::iterator iter; - stringLines text_split; + FStringList::iterator iter; + FStringList text_split; FString s; uLong num; @@ -241,7 +241,7 @@ void FTextView::insert (const FString& str, int pos) //---------------------------------------------------------------------- void FTextView::replaceRange (const FString& str, int from, int to) { - stringLines::iterator iter; + FStringList::iterator iter; if ( from > to ) return;