Add files via upload
fisiere electron
This commit is contained in:
@@ -0,0 +1,862 @@
|
||||
///LIBRARIES
|
||||
#include <iostream>
|
||||
#include <graphics.h>
|
||||
#include <string.h>
|
||||
#include <winuser.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <unistd.h>
|
||||
#include <filesystem>
|
||||
|
||||
///HEADERS
|
||||
#include "startup_page.h"
|
||||
#include "workplace_page.h"
|
||||
#include "menu_selection.h"
|
||||
#include "stare_table.h"
|
||||
#include "new_project_name_reading_window.h"
|
||||
#include "drawing_components.h"
|
||||
#include "messages_panels_main_menu.h"
|
||||
#include "open_save.h"
|
||||
#include "change_color_panel.h"
|
||||
#include "messages_log_panel.h"
|
||||
#include "edit_component_value.h"
|
||||
#include "zoom_rotate_fader_workplace.h"
|
||||
#include "choose_from_two_options.h"
|
||||
#include "functii_auxiliare.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
|
||||
|
||||
//Tudor ILADE && Andrei CERBU
|
||||
|
||||
int main()
|
||||
{
|
||||
|
||||
//Tudor Ilade
|
||||
DWORD W = GetSystemMetrics(SM_CXSCREEN);
|
||||
DWORD H = GetSystemMetrics(SM_CYSCREEN);
|
||||
POINT cursorPos;
|
||||
|
||||
RECTANGLE RECT[5];
|
||||
RECTANGLE_FULL RECT_FULL[5];
|
||||
RECTANGLE MAXIMUM_ROTATION_RECT;
|
||||
|
||||
SWITCHSTATE switcher;
|
||||
SITUATIA_TABLEI project;
|
||||
HISTORY stackk;
|
||||
|
||||
float R = (float)(W/H), zoom;
|
||||
|
||||
bool panel=false, click_l=false, aprinde=false, turnOn;
|
||||
|
||||
char filename[1024], *current_directory=create_fixed_path();
|
||||
|
||||
int x, y, ans, xMouse, yMouse, component_selected,
|
||||
linking, right_menu, left_menu, top_menu, bulb=1,
|
||||
undoRedo, type=1, type_line, ndxCmp, cmp, legNdx,
|
||||
menu_select,center_fader=36.2*H/32*R, color=WHITE,
|
||||
top_fader=19.7*H/22*R, angle, slider, indx;
|
||||
|
||||
int main_window=initwindow(W,H,"Electron");
|
||||
draw_main_menu(W,H,R,current_directory);
|
||||
|
||||
while(true)
|
||||
{
|
||||
//TudorIlade
|
||||
//Main Menu
|
||||
if(panel==0)
|
||||
{
|
||||
GetCursorPos(&cursorPos);
|
||||
ScreenToClient(GetForegroundWindow(), &cursorPos);
|
||||
|
||||
change_color_icon_startup_page(menu_selection_startup_page(W,H,R,cursorPos.x,cursorPos.y),W,H,R);
|
||||
|
||||
if(ismouseclick(WM_LBUTTONDOWN))
|
||||
{
|
||||
getmouseclick(WM_LBUTTONDOWN, x, y);
|
||||
menu_select=menu_selection_startup_page(W,H,R,x,y);
|
||||
|
||||
switch(menu_select)
|
||||
{
|
||||
case 0:
|
||||
clearmouseclick(WM_LBUTTONDOWN);
|
||||
break;
|
||||
case 1:
|
||||
if(project.open)
|
||||
{
|
||||
//Andrei CERBU
|
||||
int value=choose_from_two_options(W/4,H/4,R);
|
||||
setcurrentwindow(main_window);
|
||||
switch(value)
|
||||
{
|
||||
case 1:
|
||||
draw_working_table(W,H,R,current_directory);
|
||||
|
||||
drawAllComponents(project,W,H,R,WHITE);
|
||||
panel=1;
|
||||
break;
|
||||
case 2:
|
||||
if(new_project_name_reading_window(W/4,H/4,R,filename)==1)
|
||||
{
|
||||
panel=1;
|
||||
setcurrentwindow(main_window);
|
||||
project=create_project(project,filename);
|
||||
project.open = true;
|
||||
draw_working_table(W,H,R,current_directory);
|
||||
}
|
||||
else
|
||||
{
|
||||
panel=0;
|
||||
setcurrentwindow(main_window);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
//Tudor Ilade
|
||||
else
|
||||
{
|
||||
if(new_project_name_reading_window(W/4,H/4,R,filename)==1)
|
||||
{
|
||||
|
||||
panel=1;
|
||||
setcurrentwindow(main_window);
|
||||
project=create_project(project,filename);
|
||||
project.open = true;
|
||||
draw_working_table(W,H,R,current_directory);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
panel=0;
|
||||
setcurrentwindow(main_window);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
//Tudor ILADE
|
||||
project=open_dialog(1,project);
|
||||
if(project.ans==-2||project.ans==-1||project.ans==-3)
|
||||
{
|
||||
if(project.ans!=-3)
|
||||
error_code_main_menu(W,H,project.ans);
|
||||
setcurrentwindow(main_window);
|
||||
panel=0;
|
||||
}
|
||||
else
|
||||
{
|
||||
succes_panel_main_menu(W,H);
|
||||
panel=1;
|
||||
setcurrentwindow(main_window);
|
||||
project.open = true;
|
||||
draw_working_table(W,H,R,current_directory);
|
||||
|
||||
delay(10);
|
||||
draw_components_from_file(project,W,H);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
openHtml(current_directory);
|
||||
break;
|
||||
case 4:
|
||||
closegraph();
|
||||
return 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
//Workbench
|
||||
else if(panel==1)
|
||||
{
|
||||
GetCursorPos(&cursorPos);
|
||||
ScreenToClient(GetForegroundWindow(), &cursorPos);
|
||||
|
||||
change_color_icon_top_menu_workplace_page(W,H,R,top_menu_workplace_page(W,H,R,cursorPos.x,cursorPos.y));
|
||||
change_color_icon_left_menu_workplace_page(W,H,R,left_menu_workplace_page(W,H,R,cursorPos.x,cursorPos.y));
|
||||
change_color_icon_right_menu_workplace_page(W,H,R,right_menu_workplace_page(W,H,R,cursorPos.x,cursorPos.y));
|
||||
//Tudor ILADE
|
||||
if(ismouseclick(WM_LBUTTONDOWN))
|
||||
{
|
||||
getmouseclick(WM_LBUTTONDOWN,x,y);
|
||||
|
||||
top_menu=top_menu_workplace_page(W,H,R,x,y);
|
||||
left_menu=left_menu_workplace_page(W,H,R,x,y);
|
||||
right_menu=right_menu_workplace_page(W,H,R,x,y);
|
||||
undoRedo=undo_redo_menu_workplace_page(W,H,R,x,y);
|
||||
component_selected=isComponentselected(project,x,y,R);
|
||||
linking=isLinking(project, W,H,x,y,R,CMP);
|
||||
switcher=turnLight(W,H,R,x,y,switcher);
|
||||
|
||||
turnOn = turnBulbOn(project);
|
||||
if(turnBulbOn(project)&&aprinde)
|
||||
color=YELLOW;
|
||||
else //apelez functia aici de stingere
|
||||
{
|
||||
readimagefile(path_for_images("becstins.jpg",current_directory),W-W/9+W/34,0.2*H/16,W-W/6.5+W/34,1.6*H/16);
|
||||
color=WHITE;
|
||||
}
|
||||
|
||||
if(!turnBulbOn(project) && color==YELLOW)
|
||||
{
|
||||
color = WHITE;
|
||||
readimagefile(path_for_images("becstins.jpg",current_directory),W-W/9+W/34,0.2*H/16,W-W/6.5+W/34,1.6*H/16);
|
||||
}
|
||||
//Tudor ILADE
|
||||
if(left_menu)
|
||||
{
|
||||
messages_log_panel(" ",W,H,R,W/9,H/16);
|
||||
do
|
||||
{
|
||||
if(ismouseclick(WM_LBUTTONDOWN))
|
||||
{
|
||||
getmouseclick(WM_LBUTTONDOWN,xMouse,yMouse);
|
||||
if(!top_menu_workplace_page(W,H,R,xMouse,yMouse) && !left_menu_workplace_page(W,H,R,xMouse,yMouse) &&
|
||||
!right_menu_workplace_page(W,H,R,xMouse,yMouse) && !undo_redo_menu_workplace_page(W,H,R,xMouse,yMouse)&&left_menu)
|
||||
{
|
||||
draw_components_on_working_table(left_menu,W,H,xMouse,yMouse,R,0,1.0,BLACK,CMP);
|
||||
drawAllComponents(project, W, H, R, color);
|
||||
generate_rectangle_struct(RECT, CMP, left_menu);
|
||||
generate_rectangle_full_struct(RECT_FULL,CMP, left_menu);
|
||||
MAXIMUM_ROTATION_RECT=generate_maximum_rotation(W/10,H/16,R,xMouse, yMouse,1.0,left_menu);
|
||||
if(!isColision(MAXIMUM_ROTATION_RECT,H,W,project,R,left_menu))
|
||||
{
|
||||
draw_components_on_working_table(left_menu,W,H,xMouse,yMouse,R,0,1.0,WHITE,CMP);
|
||||
generate_rectangle_struct(RECT, CMP,left_menu);
|
||||
generate_rectangle_full_struct(RECT_FULL,CMP, left_menu);
|
||||
project=creare_obiect(project,left_menu,xMouse,yMouse,W,H,R, RECT, RECT_FULL, MAXIMUM_ROTATION_RECT);
|
||||
stackk=actualizareStiva(stackk,project);
|
||||
messages_log_panel(" ",W,H,R,W/9,H/16);
|
||||
messages_log_panel("Done!",W,H,R,W/9,H/16);
|
||||
}
|
||||
else{
|
||||
messages_log_panel(" ",W,H,R,W/9,H/16);
|
||||
messages_log_panel("Colision!",W,H,R,W/9,H/16);
|
||||
}
|
||||
}
|
||||
else if(left_menu_workplace_page(W,H,R,xMouse,yMouse)!=left_menu)
|
||||
left_menu=left_menu_workplace_page(W,H,R,xMouse,yMouse),
|
||||
change_color_icon_left_menu_workplace_page(W,H,R,0),
|
||||
change_color_icon_left_menu_workplace_page(W,H,R,left_menu_workplace_page(W,H,R,xMouse,yMouse));
|
||||
else if(left_menu_workplace_page(W,H,R,xMouse,yMouse)==left_menu)
|
||||
break;
|
||||
else if(top_menu_workplace_page(W,H,R,xMouse,yMouse))
|
||||
break;
|
||||
else if(right_menu_workplace_page(W,H,R,xMouse,yMouse))
|
||||
break;
|
||||
else if(undo_redo_menu_workplace_page(W,H,R,xMouse,yMouse))
|
||||
break;
|
||||
}
|
||||
}
|
||||
while(true);
|
||||
}
|
||||
//Tudor ILADE
|
||||
else if(top_menu)
|
||||
{
|
||||
messages_log_panel(" ",W,H,R,W/9,H/16);
|
||||
switch(top_menu)
|
||||
{
|
||||
case 1:
|
||||
panel=0;
|
||||
|
||||
delay(50);
|
||||
succes_panel_main_menu(W,H);
|
||||
delay(50);
|
||||
setcurrentwindow(main_window);
|
||||
cleardevice();
|
||||
draw_main_menu(W,H,R,current_directory);
|
||||
break;
|
||||
case 2:
|
||||
project=open_dialog(1,project);
|
||||
if(project.ans==-2||project.ans==-1||project.ans==-3)
|
||||
{
|
||||
if(project.ans!=-3)
|
||||
error_code_main_menu(W,H,project.ans);
|
||||
setcurrentwindow(main_window);
|
||||
}
|
||||
else
|
||||
{
|
||||
succes_panel_main_menu(W,H);
|
||||
setcurrentwindow(main_window);
|
||||
|
||||
delay(10);
|
||||
draw_working_table(W,H,R,current_directory);
|
||||
|
||||
|
||||
delay(10);
|
||||
|
||||
draw_components_from_file(project,W,H);
|
||||
stackk=emptyStack(stackk);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
ans = save_project(project, project.path_file);
|
||||
if(ans==-1)
|
||||
{
|
||||
error_code_main_menu(W,H,ans);
|
||||
setcurrentwindow(main_window);
|
||||
}
|
||||
else
|
||||
{
|
||||
succes_panel_main_menu(W,H);
|
||||
setcurrentwindow(main_window);
|
||||
delay(10);
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
project=open_dialog(2,project);
|
||||
if(project.ans==-1||project.ans==-3)
|
||||
{
|
||||
if(project.ans!=-3)
|
||||
error_code_main_menu(W,H,project.ans);
|
||||
setcurrentwindow(main_window);
|
||||
}
|
||||
else
|
||||
{
|
||||
succes_panel_main_menu(W,H);
|
||||
setcurrentwindow(main_window);
|
||||
|
||||
delay(10);
|
||||
draw_working_table(W,H,R,current_directory);
|
||||
|
||||
|
||||
delay(10);
|
||||
|
||||
draw_components_from_file(project,W,H);
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
openHtml(current_directory);
|
||||
break;
|
||||
case 6:
|
||||
project=stergere_tabla(project);
|
||||
actualizareStiva(stackk,project);
|
||||
|
||||
cleardevice();
|
||||
draw_working_table(W,H,R,current_directory);
|
||||
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if(right_menu)
|
||||
{
|
||||
//Andrei CERBU
|
||||
switch(right_menu)
|
||||
{
|
||||
case 1://check integrity
|
||||
if(checkIntegrity(project)){
|
||||
messages_log_panel(" ",W,H,R,W/9,H/16);
|
||||
messages_log_panel("Connected!",W,H,R,W/9,H/16);
|
||||
}
|
||||
else{
|
||||
messages_log_panel(" ",W,H,R,W/9,H/16);
|
||||
messages_log_panel("Disconnected!",W,H,R,W/9,H/16);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
messages_log_panel("Choose a component!",W,H,R,W/9,H/16);
|
||||
clearmouseclick(WM_LBUTTONDOWN);
|
||||
int last_y;
|
||||
do
|
||||
{
|
||||
if(ismouseclick(WM_LBUTTONDOWN))
|
||||
{
|
||||
getmouseclick(WM_LBUTTONDOWN,x,y);
|
||||
if(isComponentselected(project,x,y,R))
|
||||
{
|
||||
int ndxCmp=getIndexOfComponent(project, x,y,R);
|
||||
change_color_icon_zoom_rotate_menu_workplace_page(W,H,R,W/10,H/22,RED);
|
||||
clearmouseclick(WM_LBUTTONDOWN);
|
||||
//create_zoom_rotate_panel_workplace(W,H,R,W/10,H/22,BLACK);
|
||||
//create_zoom_rotate_fader_workplace(W,H,R,W/10,H/22,convert_angle_to_y(project.v[ndxCmp].angle, top_fader),1,WHITE);
|
||||
//create_zoom_rotate_fader_workplace(W,H,R,W/10,H/22,convert_zoom_to_y(project.v[ndxCmp].zoom, center_fader),2,WHITE);
|
||||
do
|
||||
{
|
||||
|
||||
if(ismouseclick(WM_LBUTTONDOWN))
|
||||
{
|
||||
getmouseclick(WM_LBUTTONDOWN, x, y);
|
||||
clearmouseclick(WM_LBUTTONDOWN);
|
||||
slider = determine_angle_fader_position(W,H,R,W/10,H/22,x,y);
|
||||
|
||||
if(slider)
|
||||
{
|
||||
|
||||
|
||||
draw_black_zoom_rotate_panel(W,H,R,W/10,H/22, slider);
|
||||
draw_components_on_working_table(project.v[ndxCmp].type,W,H,project.v[ndxCmp].x1,project.v[ndxCmp].y1,R,project.v[ndxCmp].angle,project.v[ndxCmp].zoom,BLACK,CMP);
|
||||
do
|
||||
{
|
||||
yMouse=mousey();
|
||||
xMouse=mousex();
|
||||
if(betweenBars(W,H, R, W/10, H/22, xMouse, yMouse, slider))
|
||||
{
|
||||
if(slider==1)
|
||||
{
|
||||
angle=convert_y_to_angle(yMouse,top_fader);
|
||||
draw_components_on_working_table(project.v[ndxCmp].type,W,H,project.v[ndxCmp].x1,project.v[ndxCmp].y1,R,angle,project.v[ndxCmp].zoom,WHITE,CMP);
|
||||
generate_rectangle_struct(RECT, CMP, project.v[ndxCmp].type);
|
||||
generate_rectangle_full_struct(RECT_FULL,CMP, project.v[ndxCmp].type);
|
||||
draw_moving_line(project,ndxCmp,color,W,H,R,RECT);
|
||||
|
||||
create_zoom_rotate_fader_workplace(W,H,R,W/10,H/22,last_y,slider,BLACK);
|
||||
create_zoom_rotate_fader_workplace(W,H,R,W/10,H/22,yMouse,slider,WHITE);
|
||||
|
||||
delay(50);
|
||||
|
||||
draw_components_on_working_table(project.v[ndxCmp].type,W,H,project.v[ndxCmp].x1,project.v[ndxCmp].y1,R,angle,project.v[ndxCmp].zoom,BLACK,CMP);
|
||||
generate_rectangle_struct(RECT, CMP, project.v[ndxCmp].type);
|
||||
generate_rectangle_full_struct(RECT_FULL,CMP,project.v[ndxCmp].type);
|
||||
draw_moving_line(project,ndxCmp,BLACK,W,H,R,RECT);
|
||||
create_zoom_rotate_fader_workplace(W,H,R,W/10,H/22,yMouse,slider,BLACK);
|
||||
}
|
||||
else
|
||||
{
|
||||
zoom=convert_y_to_zoom(yMouse,center_fader);
|
||||
draw_components_on_working_table(project.v[ndxCmp].type,W,H,project.v[ndxCmp].x1,project.v[ndxCmp].y1,R,project.v[ndxCmp].angle,zoom,WHITE,CMP);
|
||||
generate_rectangle_struct(RECT, CMP, type);
|
||||
generate_rectangle_full_struct(RECT_FULL,CMP, type);
|
||||
draw_moving_line(project,ndxCmp,color,W,H,R,RECT);
|
||||
|
||||
create_zoom_rotate_fader_workplace(W,H,R,W/10,H/22,last_y,slider,BLACK);
|
||||
create_zoom_rotate_fader_workplace(W,H,R,W/10,H/22,yMouse,slider,WHITE);
|
||||
|
||||
delay(50);
|
||||
|
||||
draw_components_on_working_table(project.v[ndxCmp].type,W,H,project.v[ndxCmp].x1,project.v[ndxCmp].y1,R,project.v[ndxCmp].angle,zoom,BLACK,CMP);
|
||||
draw_moving_line(project,ndxCmp,BLACK,W,H,R,RECT);
|
||||
create_zoom_rotate_fader_workplace(W,H,R,W/10,H/22,yMouse,slider,BLACK);
|
||||
}
|
||||
last_y = yMouse;
|
||||
}
|
||||
else
|
||||
{
|
||||
create_zoom_rotate_fader_workplace(W,H,R,W/10,H/22,last_y,slider,WHITE);
|
||||
if(slider==1)
|
||||
{
|
||||
draw_components_on_working_table(project.v[ndxCmp].type,W,H,project.v[ndxCmp].x1,project.v[ndxCmp].y1,R,angle,project.v[ndxCmp].zoom,WHITE,CMP);
|
||||
generate_rectangle_struct(RECT, CMP, project.v[ndxCmp].type);
|
||||
generate_rectangle_full_struct(RECT_FULL,CMP, project.v[ndxCmp].type);
|
||||
draw_moving_line(project,ndxCmp,color,W,H,R,RECT);
|
||||
|
||||
create_zoom_rotate_fader_workplace(W,H,R,W/10,H/22,last_y,slider,BLACK);
|
||||
create_zoom_rotate_fader_workplace(W,H,R,W/10,H/22,last_y,slider,WHITE);
|
||||
|
||||
delay(50);
|
||||
|
||||
draw_components_on_working_table(project.v[ndxCmp].type,W,H,project.v[ndxCmp].x1,project.v[ndxCmp].y1,R,angle,project.v[ndxCmp].zoom,BLACK,CMP);
|
||||
generate_rectangle_struct(RECT, CMP, project.v[ndxCmp].type);
|
||||
generate_rectangle_full_struct(RECT_FULL,CMP,project.v[ndxCmp].type);
|
||||
draw_moving_line(project,ndxCmp,BLACK,W,H,R,RECT);
|
||||
}
|
||||
else
|
||||
{
|
||||
draw_components_on_working_table(project.v[ndxCmp].type,W,H,project.v[ndxCmp].x1,project.v[ndxCmp].y1,R,project.v[ndxCmp].angle,zoom,WHITE,CMP);
|
||||
generate_rectangle_struct(RECT, CMP, type);
|
||||
generate_rectangle_full_struct(RECT_FULL,CMP, type);
|
||||
draw_moving_line(project,ndxCmp,color,W,H,R,RECT);
|
||||
|
||||
create_zoom_rotate_fader_workplace(W,H,R,W/10,H/22,last_y,slider,BLACK);
|
||||
create_zoom_rotate_fader_workplace(W,H,R,W/10,H/22,last_y,slider,WHITE);
|
||||
|
||||
delay(50);
|
||||
|
||||
draw_components_on_working_table(project.v[ndxCmp].type,W,H,project.v[ndxCmp].x1,project.v[ndxCmp].y1,R,project.v[ndxCmp].angle,zoom,BLACK,CMP);
|
||||
draw_moving_line(project,ndxCmp,BLACK,W,H,R,RECT);
|
||||
}
|
||||
}
|
||||
|
||||
if(ismouseclick(WM_LBUTTONDOWN))
|
||||
break;
|
||||
}
|
||||
while(true);
|
||||
clearmouseclick(WM_LBUTTONDOWN);
|
||||
create_zoom_rotate_fader_workplace(W,H,R,W/10,H/22,yMouse,slider,WHITE);
|
||||
if(slider==1)
|
||||
{
|
||||
draw_components_on_working_table(project.v[ndxCmp].type,W,H,project.v[ndxCmp].x1,project.v[ndxCmp].y1,R,angle,project.v[ndxCmp].zoom,WHITE,CMP);
|
||||
generate_rectangle_struct(RECT, CMP, type);
|
||||
generate_rectangle_full_struct(RECT_FULL,CMP, type);
|
||||
|
||||
draw_moving_line(project,ndxCmp,WHITE,W,H,R,RECT);
|
||||
project = actualizareTabla(project, ndxCmp,project.v[ndxCmp].x1,project.v[ndxCmp].y1,W,H,R,angle,project.v[ndxCmp].zoom, RECT, RECT_FULL, project.v[ndxCmp].outsideRect);
|
||||
stackk=actualizareStiva(stackk,project);
|
||||
drawAllComponents(project, W,H,R,color);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
draw_components_on_working_table(project.v[ndxCmp].type,W,H,project.v[ndxCmp].x1,project.v[ndxCmp].y1,R,project.v[ndxCmp].angle,zoom,BLACK,CMP);
|
||||
generate_rectangle_full_struct(RECT_FULL, CMP, type);
|
||||
generate_rectangle_struct(RECT, CMP, type);
|
||||
MAXIMUM_ROTATION_RECT = generate_maximum_rotation(W/10,H/16,R,project.v[ndxCmp].x1, project.v[ndxCmp].y1,zoom, R);
|
||||
draw_moving_line(project,ndxCmp,color,W,H,R,RECT);
|
||||
|
||||
project = actualizareTabla(project, ndxCmp,project.v[ndxCmp].x1,project.v[ndxCmp].y1,W,H,R,project.v[ndxCmp].angle,zoom, RECT, RECT_FULL, MAXIMUM_ROTATION_RECT);
|
||||
stackk=actualizareStiva(stackk,project);
|
||||
drawAllComponents(project, W,H,R,color);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
if(right_menu_workplace_page(W,H,R,x,y)==2)
|
||||
break;
|
||||
|
||||
}
|
||||
while(true);
|
||||
create_zoom_rotate_fader_workplace(W,H,R,W/10,H/22,convert_angle_to_y(angle, top_fader),1,BLACK);
|
||||
create_zoom_rotate_fader_workplace(W,H,R,W/10,H/22,convert_zoom_to_y(zoom, center_fader),2,BLACK);
|
||||
create_zoom_rotate_panel_workplace(W,H,R,W/10,H/22,WHITE);
|
||||
}
|
||||
if(right_menu_workplace_page(W,H,R,x,y)==2)
|
||||
break;
|
||||
}
|
||||
}
|
||||
while(true);
|
||||
change_color_icon_zoom_rotate_menu_workplace_page(W,H,R,W/10,H/22,WHITE);
|
||||
|
||||
messages_log_panel(" ",W,H,R,W/9,H/16);
|
||||
messages_log_panel("Done!",W,H,R,W/9,H/16);
|
||||
|
||||
break;
|
||||
case 3://delete component
|
||||
//Tudor ILADE
|
||||
messages_log_panel("Choose a component!",W,H,R,W/9,H/16);
|
||||
do
|
||||
{
|
||||
click_l=ismouseclick(WM_LBUTTONDOWN);
|
||||
getmouseclick(WM_LBUTTONDOWN,xMouse,yMouse);
|
||||
|
||||
if(click_l)
|
||||
{
|
||||
cmp=getIndexOfComponent(project,xMouse,yMouse,R);
|
||||
if(right_menu_workplace_page(W,H,R,xMouse,yMouse)==3)
|
||||
break;
|
||||
if(cmp!=-1)
|
||||
{
|
||||
draw_components_on_working_table(project.v[cmp].type,W,H,project.v[cmp].x1, project.v[cmp].y1,project.v[cmp].R,project.v[cmp].angle,project.v[cmp].zoom,BLACK,CMP);
|
||||
drawAllLinesBack(project,cmp,W,H,R);
|
||||
project=deleteComponent(project,cmp);
|
||||
stackk=actualizareStiva(stackk,project);
|
||||
drawAllComponents(project,W,H,R,color);
|
||||
}
|
||||
}
|
||||
}
|
||||
while(true);
|
||||
|
||||
messages_log_panel(" ",W,H,R,W/9,H/16);
|
||||
messages_log_panel("Done!",W,H,R,W/9,H/16);
|
||||
|
||||
break;
|
||||
case 4://Delete linking
|
||||
//Tudor Ilade
|
||||
messages_log_panel("Choose a linking!",W,H,R,W/9,H/16);
|
||||
do
|
||||
{
|
||||
if(ismouseclick(WM_LBUTTONDOWN))
|
||||
{
|
||||
getmouseclick(WM_LBUTTONDOWN,xMouse,yMouse);
|
||||
legNdx=isLinkSelected(project,xMouse,yMouse);
|
||||
|
||||
if(legNdx!=-1)
|
||||
{
|
||||
project=stergeLegatura(project,legNdx);
|
||||
stackk=actualizareStiva(stackk,project);
|
||||
|
||||
drawAllComponents(project,W,H,R,color);
|
||||
}
|
||||
else if(right_menu_workplace_page(W,H,R,xMouse,yMouse)||!right_menu_workplace_page(W,H,R,xMouse,yMouse))
|
||||
break;
|
||||
}
|
||||
}
|
||||
while(true);
|
||||
|
||||
messages_log_panel(" ",W,H,R,W/9,H/16);
|
||||
messages_log_panel("Done!",W,H,R,W/9,H/16);
|
||||
|
||||
break;
|
||||
case 5:
|
||||
messages_log_panel("Choose a component!",W,H,R,W/9,H/16);
|
||||
do
|
||||
{
|
||||
if(ismouseclick(WM_LBUTTONDOWN))
|
||||
{
|
||||
|
||||
getmouseclick(WM_LBUTTONDOWN,xMouse,yMouse);
|
||||
if(isComponentselected(project,xMouse,yMouse,R))
|
||||
{
|
||||
cmp=getIndexOfComponent(project,xMouse,yMouse,R);
|
||||
indx=project.v[cmp].type;
|
||||
int value_cmp=edit_value_window(W,H,R,indx, project.v[cmp].value);
|
||||
project.v[cmp].value=value_cmp;
|
||||
|
||||
|
||||
setcurrentwindow(main_window);
|
||||
break;
|
||||
}
|
||||
else break;
|
||||
}
|
||||
}
|
||||
while(true);
|
||||
setcurrentwindow(main_window);
|
||||
|
||||
messages_log_panel(" ",W,H,R,W/9,H/16);
|
||||
messages_log_panel("Done!",W,H,R,W/9,H/16);
|
||||
|
||||
break;
|
||||
//Tudor Ilade
|
||||
case 6://Select linking type
|
||||
messages_log_panel("Choose a linking type!",W,H,R,W/9,H/16);
|
||||
|
||||
delay(40);
|
||||
|
||||
create_drawing_line_type_menu_workplace(W,H,R,W/10,H/22,WHITE);
|
||||
drawing_line_type(W,H,R,W/10,H/22,WHITE);
|
||||
|
||||
do
|
||||
{
|
||||
xMouse=mousex();
|
||||
yMouse=mousey();
|
||||
if(type)
|
||||
change_color_icon_drawing_line_type_menu_workplace(W,H,R,type,type);
|
||||
change_color_icon_drawing_line_type_menu_workplace(W,H,R,line_type_menu_workplace(W,H,R,xMouse,yMouse),type);
|
||||
|
||||
|
||||
if(ismouseclick(WM_LBUTTONDOWN))
|
||||
{
|
||||
getmouseclick(WM_LBUTTONDOWN,xMouse,yMouse);
|
||||
if(line_type_menu_workplace(W,H,R,xMouse,yMouse)==0)
|
||||
break;
|
||||
else if(type==0||line_type_menu_workplace(W,H,R,xMouse,yMouse)&&line_type_menu_workplace(W,H,R,xMouse,yMouse)!=type)
|
||||
type=line_type_menu_workplace(W,H,R,xMouse,yMouse);
|
||||
else if(line_type_menu_workplace(W,H,R,xMouse,yMouse)==type)
|
||||
type=0;
|
||||
}
|
||||
}
|
||||
while(true);
|
||||
|
||||
delay(50);
|
||||
|
||||
create_drawing_line_type_menu_workplace(W,H,R,W/10,H/22,BLACK);
|
||||
drawing_line_type(W,H,R,W/10,H/22,BLACK);
|
||||
|
||||
messages_log_panel(" ",W,H,R,W/9,H/16);
|
||||
messages_log_panel("Done!",W,H,R,W/9,H/16);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
//Tudor Ilade
|
||||
else if(undoRedo)
|
||||
{
|
||||
messages_log_panel(" ",W,H,R,W/9,H/16);
|
||||
switch(undoRedo)
|
||||
{
|
||||
case 1://Undo
|
||||
do
|
||||
{
|
||||
getmouseclick(WM_LBUTTONDBLCLK,xMouse,yMouse);
|
||||
drawAllComponents(project,W,H,R,BLACK);
|
||||
project=URfnc(stackk,undoRedo,project);
|
||||
drawAllComponents(project,W,H,R,color);
|
||||
}
|
||||
while(undo_redo_menu_workplace_page(W,H,R,xMouse,yMouse)==1);
|
||||
break;
|
||||
case 2://Redo
|
||||
do
|
||||
{
|
||||
getmouseclick(WM_LBUTTONDBLCLK,xMouse,yMouse);
|
||||
drawAllComponents(project,W,H,R,BLACK);
|
||||
project=URfnc(stackk,undoRedo,project);
|
||||
drawAllComponents(project,W,H,R,color);
|
||||
}
|
||||
while(undo_redo_menu_workplace_page(W,H,R,xMouse,yMouse)==2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
//Tudor Ilade
|
||||
else if(component_selected && !linking)
|
||||
{
|
||||
messages_log_panel(" ",W,H,R,W/9,H/16);
|
||||
ndxCmp=getIndexOfComponent(project,x,y,R);
|
||||
getmouseclick(WM_LBUTTONDBLCLK,xMouse,yMouse);
|
||||
clearmouseclick(WM_LBUTTONDBLCLK);
|
||||
|
||||
draw_components_on_working_table(project.v[ndxCmp].type,W,H,project.v[ndxCmp].x1,project.v[ndxCmp].y1,project.v[ndxCmp].R,project.v[ndxCmp].angle,project.v[ndxCmp].zoom,BLACK,CMP);
|
||||
generate_rectangle_struct(RECT, CMP, project.v[ndxCmp].type);
|
||||
generate_rectangle_full_struct(RECT_FULL,CMP, project.v[ndxCmp].type);
|
||||
draw_moving_line(project, ndxCmp, BLACK, W,H,R,RECT);
|
||||
do
|
||||
{
|
||||
click_l=ismouseclick(WM_LBUTTONDOWN);
|
||||
x=mousex();
|
||||
y=mousey();
|
||||
MAXIMUM_ROTATION_RECT = generate_maximum_rotation(W/10,H/16,R,x,y,project.v[ndxCmp].zoom, project.v[ndxCmp].type);
|
||||
if(click_l)
|
||||
{
|
||||
getmouseclick(WM_LBUTTONDOWN,x,y);
|
||||
break;
|
||||
}
|
||||
if(outSideTable(x,y,H,W,R,MAXIMUM_ROTATION_RECT, project.v[ndxCmp].type))
|
||||
{
|
||||
|
||||
messages_log_panel("A depasit limitele tablei!",W,H,R,W/9,H/16);
|
||||
delay(50);
|
||||
break;
|
||||
}
|
||||
if(xMouse!=x||yMouse!=y)
|
||||
{
|
||||
draw_components_on_working_table(project.v[ndxCmp].type,W,H,x,y,R,project.v[ndxCmp].angle,project.v[ndxCmp].zoom,WHITE,CMP);
|
||||
generate_rectangle_struct(RECT, CMP, project.v[ndxCmp].type);
|
||||
generate_rectangle_full_struct(RECT_FULL,CMP, project.v[ndxCmp].type);
|
||||
draw_moving_line(project, ndxCmp,color,W,H,R, RECT);
|
||||
|
||||
delay(40);
|
||||
|
||||
draw_components_on_working_table(project.v[ndxCmp].type,W,H,x,y,R,project.v[ndxCmp].angle,project.v[ndxCmp].zoom,BLACK,CMP);
|
||||
generate_rectangle_struct(RECT, CMP, project.v[ndxCmp].type);
|
||||
generate_rectangle_full_struct(RECT_FULL,CMP, project.v[ndxCmp].type);
|
||||
draw_moving_line(project,ndxCmp,BLACK,W,H,R, RECT);
|
||||
drawComponentsXSelected(project, ndxCmp, W, H, R, color);
|
||||
}
|
||||
}
|
||||
while(true);
|
||||
MAXIMUM_ROTATION_RECT = generate_maximum_rotation(W/10,H/16,R,x,y,1.0, project.v[ndxCmp].type);
|
||||
if(!isColision(MAXIMUM_ROTATION_RECT,H,W,project,R,project.v[ndxCmp].type,ndxCmp))
|
||||
{
|
||||
drawAllLinesBack(project,ndxCmp,W,H,R);
|
||||
draw_components_on_working_table(project.v[ndxCmp].type,W,H,x,y,R,project.v[ndxCmp].angle,project.v[ndxCmp].zoom,BLACK,CMP);
|
||||
generate_rectangle_struct(RECT, CMP,project.v[ndxCmp].type);
|
||||
generate_rectangle_full_struct(RECT_FULL, CMP, project.v[ndxCmp].type);
|
||||
project=actualizareTabla(project,ndxCmp,x,y,W,H,project.v[ndxCmp].R,project.v[ndxCmp].angle,project.v[ndxCmp].zoom, RECT, RECT_FULL, MAXIMUM_ROTATION_RECT);
|
||||
stackk=actualizareStiva(stackk, project);
|
||||
drawAllComponents(project,W, H, R, color);
|
||||
messages_log_panel(" ",W,H,R,W/9,H/16);
|
||||
messages_log_panel("Done!",W,H,R,W/9,H/16);
|
||||
}
|
||||
else
|
||||
{
|
||||
messages_log_panel(" ",W,H,R,W/9,H/16);
|
||||
messages_log_panel("Coliziune",W,H,R,W/9,H/16);
|
||||
drawAllComponents(project, W, H, R, color);
|
||||
}
|
||||
|
||||
}
|
||||
//Tudor Ilade
|
||||
else if(linking)
|
||||
{
|
||||
messages_log_panel(" ",W,H,R,W/9,H/16);
|
||||
punctLegatura leg1, leg2;
|
||||
int ndx = getIndexOfComponent(project,x,y,R);
|
||||
COMPONENTE cmp = project.v[ndx];
|
||||
leg1.x = x;
|
||||
leg1.y = y;
|
||||
leg1.sd = linking;
|
||||
leg1.type = type;
|
||||
xMouse = mousex();
|
||||
yMouse = mousey();
|
||||
click_l=0;
|
||||
do
|
||||
{
|
||||
drawLine(leg1.x,leg1.y, xMouse,yMouse, WHITE,leg1.type);
|
||||
delay(50);
|
||||
drawLine(leg1.x,leg1.y, xMouse,yMouse, BLACK,leg1.type);
|
||||
drawAllComponents(project, W,H,R, WHITE);
|
||||
|
||||
xMouse=mousex();
|
||||
yMouse=mousey();
|
||||
if(outSideTable(xMouse,yMouse,H,W,R,MAXIMUM_ROTATION_RECT))
|
||||
{
|
||||
delay(50);
|
||||
break;
|
||||
}
|
||||
click_l = ismouseclick(WM_LBUTTONDOWN);
|
||||
if(click_l)
|
||||
break;
|
||||
|
||||
|
||||
}
|
||||
while(true);
|
||||
click_l=0;
|
||||
clearmouseclick(WM_LBUTTONDOWN);
|
||||
clearmouseclick(click_l);
|
||||
xMouse = mousex();
|
||||
yMouse = mousey();
|
||||
int leg = isLinking(project,W,H,xMouse,yMouse,R,CMP,ndx);
|
||||
if(leg)
|
||||
{
|
||||
int ndx2 = getIndexOfComponent(project,xMouse,yMouse,R);
|
||||
drawLine(leg1.x,leg1.y, xMouse,yMouse, WHITE,leg1.type);
|
||||
leg1.xConnection = xMouse;
|
||||
leg1.yConnection = yMouse;
|
||||
leg1.ndxParent = ndx;
|
||||
leg2.sd = leg;
|
||||
leg2.x = xMouse;
|
||||
leg2.y = yMouse;
|
||||
leg2.ndxParent = ndx2;
|
||||
leg2.xConnection = leg1.x;
|
||||
leg2.yConnection = leg1.y;
|
||||
leg2.type = leg1.type;
|
||||
pair<punctLegatura, punctLegatura>PAIR;
|
||||
PAIR.first = leg1;
|
||||
PAIR.second = leg2;
|
||||
project.p.push_back(PAIR);
|
||||
project.v[ndx].legatura.push_back(PAIR);
|
||||
project.v[ndx2].legatura.push_back(PAIR);
|
||||
drawAllComponents(project, W,H,R, color);
|
||||
stackk = actualizareStiva(stackk, project);
|
||||
}
|
||||
else
|
||||
{
|
||||
drawLine(leg1.x,leg1.y, xMouse,yMouse, BLACK,leg1.type);
|
||||
drawAllComponents(project, W,H,R, color);
|
||||
}
|
||||
messages_log_panel("Done!",W,H,R,W/9,H/16);
|
||||
}
|
||||
//Tudor Ilade
|
||||
else if(switcher.inOut)
|
||||
{
|
||||
messages_log_panel(" ",W,H,R,W/9,H/16);
|
||||
if(switcher.bulb==1)//aprinde becu
|
||||
{
|
||||
if(turnOn)
|
||||
{
|
||||
readimagefile(path_for_images("bec_aprins.jpg",current_directory),W-W/9+W/34,0.2*H/16,W-W/6.5+W/34,1.6*H/16);
|
||||
color=YELLOW;
|
||||
aprinde=true;
|
||||
messages_log_panel("Happy Circuit!",W,H,R,W/9,H/16);
|
||||
drawAllComponents(project, W,H,R,color);
|
||||
delay(100);
|
||||
}
|
||||
else
|
||||
{
|
||||
color=WHITE;
|
||||
messages_log_panel("Not working!",W,H,R,W/9,H/16);
|
||||
|
||||
}
|
||||
}
|
||||
else if(switcher.bulb==2)//stinge becu
|
||||
{
|
||||
if(turnOn)
|
||||
{
|
||||
readimagefile(path_for_images("becstins.jpg",current_directory),W-W/9+W/34,0.2*H/16,W-W/6.5+W/34,1.6*H/16);
|
||||
aprinde=false;
|
||||
color=WHITE;
|
||||
drawAllComponents(project,W,H,R,color);
|
||||
delay(100);
|
||||
|
||||
messages_log_panel("Light off!",W,H,R,W/9,H/16);
|
||||
}
|
||||
else
|
||||
{
|
||||
color=WHITE;
|
||||
messages_log_panel("Not working!",W,H,R,W/9,H/16);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user