// This file is part of fityk program. Copyright (C) Marcin Wojdyr
// Licence: GNU General Public License version 2
// $Id: statbar.h 264 2007-03-01 10:10:54Z wojdyr $
#ifndef FITYK__WX_STATBAR__H__
#define FITYK__WX_STATBAR__H__
#include <vector>
#include <string>
#include <wx/config.h>
#include "cmn.h" //SpinCtrl, close_it
enum StatusBarField { sbf_text, sbf_hint1, sbf_hint2, sbf_coord, sbf_max };
/// Status bar in Fityk
class FStatusBar: public wxStatusBar
{
public:
wxString fmt_main, fmt_aux;
FStatusBar(wxWindow *parent);
void OnSize(wxSizeEvent& event) { move_bitmaps(); event.Skip(); }
void move_bitmaps();
void set_hint(std::string const& left, std::string const& right);
int get_coord_width() const { return m_statusWidths[sbf_coord]; }
int get_hint_width() const { return m_statusWidths[sbf_hint1]; }
void set_widths(int hint, int coord);
void set_hint_width(int w);
void set_coord_info(double x, double y, bool aux=false);
bool set_extra_value(std::string const& s);
wxString const& get_extra_value() const { return extra_value; }
void save_settings(wxConfigBase *cf) const;
void read_settings(wxConfigBase *cf);
private:
int widths[4]; //4==sbf_max
wxString extra_value;
std::vector<int> e_code;
std::vector<double> e_numbers;
wxStaticBitmap *statbmp1, *statbmp2;
DECLARE_EVENT_TABLE()
};
/// Status bar configuration dialog
class ConfStatBarDlg: public wxDialog
{
public:
ConfStatBarDlg(wxWindow* parent, wxWindowID id, FStatusBar* sb_);
void OnApply (wxCommandEvent& event);
void OnClose (wxCommandEvent&) { close_it(this); }
private:
FStatusBar *sb;
SpinCtrl *width_sc, *whint_sc;
wxTextCtrl *fm_tc, *fa_tc, *ff_tc;
DECLARE_EVENT_TABLE()
};
#endif
syntax highlighted by Code2HTML, v. 0.9.1