mirror of
https://github.com/edeproject/ede.git
synced 2023-08-10 21:13:03 +03:00
112 lines
3.0 KiB
C++
112 lines
3.0 KiB
C++
/*
|
|
* $Id$
|
|
*
|
|
* Extended Fast Light Toolkit (EFLTK)
|
|
* Copyright (C) 2002-2003 by EDE-Team
|
|
* WWW: http://www.sourceforge.net/projects/ede
|
|
*
|
|
* Fast Light Toolkit (FLTK)
|
|
* Copyright (C) 1998-2003 by Bill Spitzak and others.
|
|
* WWW: http://www.fltk.org
|
|
*
|
|
* This library is distributed under the GNU LIBRARY GENERAL PUBLIC LICENSE
|
|
* version 2. See COPYING for details.
|
|
*
|
|
* Author : Alexey Parshin
|
|
* Email : alexey@fltk.net
|
|
*
|
|
* Please report all bugs and problems to "efltk-bugs@fltk.net"
|
|
*
|
|
*/
|
|
//
|
|
// Ported to FLTK2 by Vedran Ljubovic <vljubovic@smartnet.ba>, 2005.
|
|
|
|
#ifndef _EDE_CALENDAR_H_
|
|
#define _EDE_CALENDAR_H_
|
|
|
|
/*
|
|
#include <efltk/Fl.h>
|
|
#include <efltk/Fl_Popup_Window.h>
|
|
#include <efltk/Fl_Date_Time.h>
|
|
#include <efltk/Fl_Box.h>
|
|
#include <efltk/Fl_Button.h>*/
|
|
|
|
#include "Fl_Date_Time.h"
|
|
#include <fltk/InvisibleBox.h>
|
|
#include <fltk/Button.h>
|
|
#include <fltk/Group.h>
|
|
#include <fltk/Symbol.h>
|
|
|
|
/** Fl_Calendar */
|
|
class EDE_Calendar : public fltk::Group {
|
|
public:
|
|
static fltk::NamedStyle* default_style;
|
|
|
|
/** The traditional constructor creates the calendar using the position, size, and label. */
|
|
EDE_Calendar(int x,int y,int w,int h,const char *lbl=0L);
|
|
|
|
/** The new style constructor creates the calendar using the label, size, alignment, and label_width. */
|
|
// Fl_Calendar(const char* l = 0,int layout_size=30,fltk::Align layout_al=fltk::ALIGN_TOP,int label_w=100);
|
|
|
|
virtual void layout();
|
|
virtual void draw();
|
|
virtual void measure(int& w,int& h) const;
|
|
|
|
virtual void reset() { date(Fl_Date_Time::Now()); }
|
|
|
|
void date(Fl_Date_Time dt);
|
|
Fl_Date_Time date() const;
|
|
|
|
void dayButtonClicked(unsigned day);
|
|
void dayButtonChanged(unsigned day);
|
|
void switchButtonClicked(int monthChange);
|
|
|
|
private:
|
|
static void cbDayButtonClicked(fltk::Widget *,void *);
|
|
static void cbSwitchButtonClicked(fltk::Widget *,void *);
|
|
|
|
fltk::Group *m_headerBox;
|
|
fltk::Group *m_buttonBox;
|
|
fltk::InvisibleBox *m_monthNameBox;
|
|
fltk::InvisibleBox *m_dayNameBoxes[7];
|
|
fltk::Button *m_dayButtons[31];
|
|
fltk::Button *m_switchButtons[4];
|
|
Fl_Date_Time m_todayDate;
|
|
Fl_Date_Time m_activeDate;
|
|
int m_globalx, m_globaly;
|
|
char m_headerLabel[20]; // month+year shouldn't get larger in any locale
|
|
|
|
|
|
void ctor_init(int x,int y,int w,int h);
|
|
};
|
|
|
|
/* We lack Fl_Popup_Window to make this work... Maybe later...
|
|
|
|
class Fl_Popup_Calendar : public Fl_Popup_Window {
|
|
public:
|
|
static fltk::NamedStyle* default_style;
|
|
|
|
Fl_Popup_Calendar(fltk::Widget *dateControl=NULL);
|
|
|
|
Fl_Calendar *calendar() { return m_calendar; }
|
|
|
|
void clicked() { set_value(); }
|
|
void layout();
|
|
void draw();
|
|
int handle(int);
|
|
|
|
void date(Fl_Date_Time dt) { m_calendar->date(dt); }
|
|
Fl_Date_Time date() const { return m_calendar->date(); }
|
|
|
|
bool popup();
|
|
// Popup calendar, relative to widget
|
|
bool popup(fltk::Widget *dateControl, int X, int Y, int W=0, int H=0);
|
|
|
|
private:
|
|
friend class Fl_Calendar;
|
|
Fl_Calendar *m_calendar;
|
|
fltk::Widget *m_dateControl;
|
|
};*/
|
|
|
|
#endif
|