Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cctype>
- using namespace std;
- #define SCREEN_W 1024
- #define SCREEN_H 748
- struct ModelWindow
- {
- char *title;
- int x, y, width, height, color, visible, border;
- void init()
- {
- title = new char[64];
- x = 0; y = 0; width = 800; height = 600; color = 0;
- visible = 1; border = 1;
- }
- void input()
- {
- cout << "input x y: "; cin >> x >> y;
- cout << "input width height: "; cin >> width >> height;
- cout << "input color: "; cin >> color;
- cout << "input visible mode: "; cin >> visible;
- cout << "input border mode: "; cin >> border;
- }
- void output()
- {
- cout << toPChar() << endl;
- }
- char *toPChar()
- {
- char *r = new char[512];
- char buffer[20];
- strcpy(r, "x = "); strcat(r, itoa(x, buffer, 10));
- strcat(r, " y = "); strcat(r, itoa(y, buffer, 10));
- strcat(r, "\nwidth = "); strcat(r, itoa(width, buffer, 10));
- strcat(r, " height = "); strcat(r, itoa(height, buffer, 10));
- strcat(r, "\ncolor = "); strcat(r, itoa(color, buffer, 10));
- strcat(r, "\nvisible = "); strcat(r, visible == 1 ? "true" : "false");
- strcat(r, "\nborder = "); strcat(r, border == 1 ? "true" : "false");
- return r;
- }
- };
- void moveHorizontally(ModelWindow &m, int p)
- {
- m.x = p;
- if (m.x + m.width >= SCREEN_W) m.x = SCREEN_W - m.width;
- else if (m.x + m.width <= 0) m.x = 0;
- }
- void moveVertically(ModelWindow &m, int p)
- {
- m.y = p;
- if (m.y + m.height >= SCREEN_H) m.y = SCREEN_H - m.height;
- else if (m.y + m.height <= 0) m.y = 0;
- }
- void setSize(ModelWindow &m, int w)
- {
- m.width = w;
- if (m.x + m.width >= SCREEN_W) m.width -= m.x + m.width + SCREEN_W;
- else if (m.x + m.width <= 0) m.width = 0;
- }
- void setSize(ModelWindow &m, int w, int h)
- {
- m.width = w;
- m.height = h;
- if (m.x + m.width >= SCREEN_W) m.width -= m.x + m.width + SCREEN_W;
- else if (m.x + m.width <= 0) m.width = 0;
- if (m.y + m.height >= SCREEN_H) m.height -= m.y + m.height + SCREEN_H;
- else if (m.y + m.height <= 0) m.height = 0;
- }
- void setColor(ModelWindow &m, int color)
- {
- m.color = color;
- }
- void setVisibility(ModelWindow &m, int mode)
- {
- m.visible = mode;
- }
- int getVisibility(ModelWindow &m)
- {
- return m.visible;
- }
- void setBorder(ModelWindow &m, int mode)
- {
- m.border = mode;
- }
- int getBorder(ModelWindow m)
- {
- return m.border;
- }
- void main()
- {
- ModelWindow m;
- m.init();
- m.input();
- m.output();
- cin.ignore();
- cin.get();
- }
- /*Визначити тип TModelWindow для роботи з моделями екранних вікон.
- Як поля задаються: заголовок вікна, координати верхнього лівого кута,
- розмір по горизонталі, розмір по вертикалі, колір вікна, стан "видиме/невидиме",
- стан "з рамкою/без рамки". Координати і розміри вказуються в цілих числах.
- Реалізувати операції: переміщення вікна по горизонталі, по вертикалі;
- зміна висоти та/або ширини вікна, зміна кольору; зміна стану, опитування стану.
- Операції переміщення та зміни розміру повинні виконувати перевірку на перетинання границь екрана.
- Функція виведення на екран має демонструвати стан полів об’єкта. */
Advertisement
Add Comment
Please, Sign In to add comment