2007-09-14 13:04:03 +04:00
|
|
|
/*
|
|
|
|
* Copyright 2004-2007, Haiku, Inc. All Rights Reserved.
|
|
|
|
* Distributed under the terms of the MIT License.
|
|
|
|
*
|
|
|
|
* Authors:
|
|
|
|
* probably Mike Berg <mike@agamemnon.homelinux.net>
|
|
|
|
* and/or Andrew McCall <mccall@@digitalparadise.co.uk>
|
|
|
|
*/
|
2004-05-06 16:55:26 +04:00
|
|
|
#ifndef CALENDAR_VIEW_H
|
|
|
|
#define CALENDAR_VIEW_H
|
|
|
|
|
2007-09-14 13:04:03 +04:00
|
|
|
|
2004-06-24 16:09:57 +04:00
|
|
|
#include <Control.h>
|
2004-05-06 16:55:26 +04:00
|
|
|
#include <View.h>
|
|
|
|
|
2007-09-14 13:04:03 +04:00
|
|
|
|
2004-06-24 16:09:57 +04:00
|
|
|
class TDay: public BControl {
|
2004-05-06 16:55:26 +04:00
|
|
|
public:
|
|
|
|
TDay(BRect frame, int day);
|
|
|
|
virtual ~TDay();
|
|
|
|
virtual void AttachedToWindow();
|
2004-07-15 05:51:50 +04:00
|
|
|
virtual void Draw(BRect updaterect);
|
|
|
|
virtual void KeyDown(const char *bytes, int32 numbytes);
|
|
|
|
virtual void MakeFocus(bool focused);
|
2004-05-06 16:55:26 +04:00
|
|
|
virtual void MouseDown(BPoint where);
|
2004-06-24 16:09:57 +04:00
|
|
|
virtual void SetValue(int32 value);
|
|
|
|
|
2004-05-06 16:55:26 +04:00
|
|
|
void SetTo(BRect frame, int day);
|
2004-06-24 16:09:57 +04:00
|
|
|
void SetTo(int day, bool selected = false);
|
|
|
|
|
|
|
|
int Day()
|
|
|
|
{ return f_day; }
|
2004-05-06 16:55:26 +04:00
|
|
|
protected:
|
|
|
|
virtual void Stroke3dFrame(BRect frame, rgb_color light, rgb_color dark, bool inset);
|
|
|
|
private:
|
|
|
|
int f_day;
|
|
|
|
};
|
|
|
|
|
2004-06-24 16:09:57 +04:00
|
|
|
class TCalendarView: public BView {
|
2004-05-06 16:55:26 +04:00
|
|
|
public:
|
|
|
|
TCalendarView(BRect frame, const char *name, uint32 resizingmode, uint32 flags);
|
|
|
|
virtual ~TCalendarView();
|
|
|
|
virtual void AttachedToWindow();
|
|
|
|
virtual void Draw(BRect bounds);
|
2004-07-15 05:51:50 +04:00
|
|
|
void KeyDown(const char *bytes, int32 numbytes);
|
2004-06-24 16:09:57 +04:00
|
|
|
virtual void MessageReceived(BMessage *message);
|
2004-05-06 16:55:26 +04:00
|
|
|
|
2004-06-24 16:09:57 +04:00
|
|
|
void SetTo(int32, int32, int32);
|
2004-05-06 16:55:26 +04:00
|
|
|
protected:
|
|
|
|
virtual void InitView();
|
2004-06-24 16:09:57 +04:00
|
|
|
virtual void DispatchMessage();
|
2004-05-06 16:55:26 +04:00
|
|
|
private:
|
|
|
|
void InitDates();
|
|
|
|
void CalcFlags();
|
2004-07-15 05:51:50 +04:00
|
|
|
int32 IndexOf(BView *) const;
|
2004-05-06 16:55:26 +04:00
|
|
|
|
2004-06-24 16:09:57 +04:00
|
|
|
TDay *f_cday;
|
2004-07-15 05:51:50 +04:00
|
|
|
TDay *f_focused;
|
2004-06-24 16:09:57 +04:00
|
|
|
BRect f_dayrect;
|
2004-07-15 05:51:50 +04:00
|
|
|
// x = index of first day; y = index of last;
|
|
|
|
BPoint f_daybound;
|
2004-06-24 16:09:57 +04:00
|
|
|
int f_firstday;
|
|
|
|
int f_month;
|
|
|
|
int f_day;
|
|
|
|
int f_year;
|
2004-05-06 16:55:26 +04:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif // CALENDAR_VIEW_H
|