Writing a forward/back button

I am making a calendar to look similar to Outlook, but it is in c++ and I am starting from scratch. I have broken it into parts, and the part I am struggling with is making the next/previous month button to add to the calendar. I have a basic code, but I don't know exactly what I need to change or add to it. Any advice is welcome. The code is,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96


#include "std_facilities_lib_3.h"
#include <iostream>
#include <sstream>
#include "Graph.h"        // get access to our graphics library facilities
#include "GUI.h"
#include "Window.h"

using namespace Graph_lib;
using namespace std;


struct Lines_window : Window {
    Lines_window(Point xy, int w, int h, const string& title );
    Open_polyline lines;
private:
    Button next_button;        // add (next_x,next_y) to lines
    Button quit_button;
    In_box next_x;
    In_box next_y;
    Out_box xy_out;

    static void cb_next(Address, Address); // callback for next_button
    void next(); 
    static void cb_quit(Address, Address); // callback for quit_button
    void quit(); 
};


Lines_window::Lines_window(Point xy, int w, int h, const string& title)
    :Window(xy,w,h,title),
    next_button(Point(x_max()-150,0), 70, 20, "Next point", cb_next),
    quit_button(Point(x_max()-70,0), 70, 20, "Quit", cb_quit),
    next_x(Point(x_max()-310,0), 50, 20, "next x:"),
    next_y(Point(x_max()-210,0), 50, 20, "next y:"),
    xy_out(Point(100,0), 100, 20, "current (x,y):")
{
    attach(next_button);
    attach(quit_button);
    attach(next_x);
    attach(next_y);
    attach(xy_out);
    attach(lines);
}


void Lines_window::cb_quit(Address, Address pw)    // "the usual"
{  
       reference_to<Lines_window>(pw).quit();
} 


void Lines_window::quit()
{
    hide();        // curious FLTK idiom for delete window
}


void Lines_window::cb_next(Address, Address pw)     // "the usual"
{  
    reference_to<Lines_window>(pw).next();
} 



void Lines_window::next()
{
    int x = next_x.get_int();
    int y = next_y.get_int();

    lines.add(Point(x,y));

    // update current position readout:
    stringstream ss;
    ss << '(' << x << ',' << y << ')';
    xy_out.put(ss.str());

      redraw();
}


int main()
try {
    Lines_window win(Point(100,100),600,400,"lines");
    return gui_main();
}
catch(exception& e) {
    cerr << "exception: " << e.what() << '\n';
    return 1;
}
catch (...) {
    cerr << "Some exception\n";
    return 2;
}
Last edited on
Programming is very exacting, and you are not being careful.

You have triple-posted your program, and you have not given us enough to look at.

How does Lines_window display the calendar?
I'm not sure how clicking 'next' is supposed to make a difference. You say you want to add a month but instead are adding a line segment (I think)?

Do you at least have a link to your assignment?
The project is to write a C++/FLTK GUI monthly planner page program along the lines of Outlook. The program should start with a description of what it does and then ask for a month and year and the file name of the appointment file (described below). The program then displays the requested month with appointments from the file. You need 6 rows for some months. Allow the user to add additional appointments, which are then displayed on the calendar and also added to the appointment file (hint: "append" to the existing file). For teams of 3, implement the "previous month" and "next month" buttons (at the top left of the picture above), which will display the new month and reread the appointments file. Hint: To calculate the day of the week the month starts on, look up "Zeller's congruence."

Here is the format for the appointments file: Each line begins with either a month/day or month/day/year. For example,

1/1 New Year's Day
4/1 April Fool's Day
3/26/2013 Passover
4/15/2014 Passover
3/31/2013 Easter
4/20/2014 Easter
11/4/2013 Hijri New Year
10/24/2014 Hijri New Year
7/4 Independence Day
12/25 Christmas

Extra credit (up to 10 points) will be given for additional features such as implementing the "Search Calendar" box, calculating and displaying full moon days, etc.

//-----------------------------

So basically this is what I was given. The calendar is for the whole year and another person I'm working with is doing the graphics while another one is inputting the dates and events. Lines_window will work with the other portion of the project we have made. I am trying to make it change the page in essence I'm pretty sure.
Topic archived. No new replies allowed.