00001 #ifndef INCLUDED_DISPLAY_H 00002 #define INCLUDED_DISPLAY_H 00003 00004 #include "ut_compiler.h" 00005 00006 #include <Aiksaurus.h> 00007 ABI_W_NO_CONST_QUAL 00008 #include <gtk/gtk.h> 00009 ABI_W_POP 00010 #include <vector> 00011 #include <string> 00012 #include <new> 00013 #include "Exception.h" 00014 00015 namespace AiksaurusGTK_impl 00016 { 00017 class DialogMediator; 00018 class Meaning; 00019 class Display 00020 { 00021 friend class Meaning; 00022 00023 private: 00024 Display(const Display& rhs); 00025 Display& operator=(const Display& rhs); 00026 00027 DialogMediator& d_mediator; 00028 00029 Aiksaurus d_thesaurus; 00030 GtkWidget* d_scroller; 00031 GtkWidget* d_white; 00032 GtkWidget* d_layout; 00033 std::vector<Meaning*> d_meanings; 00034 00035 void _handleSelection(GtkWidget* list) noexcept(false); 00036 void _handleClick(bool isDoubleClick, const char* text) noexcept(false); 00037 00038 void _resetDisplay() noexcept(false); 00039 00040 void _createMeaning(const std::string& title, std::vector<std::string>& words) 00041 noexcept(false); 00042 00043 void _displayResults(const char* word) noexcept(false); 00044 void _displayAlternatives() noexcept(false); 00045 00046 void _checkThesaurus() noexcept(false); 00047 00048 // static void _initResources() noexcept(false); 00049 00050 public: 00051 Display(DialogMediator& parent) noexcept(false); 00052 ~Display() noexcept(false); 00053 00054 const Aiksaurus& getThesaurus() const noexcept(false); 00055 GtkWidget* getDisplay() noexcept(false); 00056 00057 void search(const char* word) noexcept(false); 00058 void showMessage(const char* message) noexcept(false); 00059 }; 00060 00061 } 00062 00063 #endif // INCLUDED_DISPLAY_H