Create toolbox window
This commit is contained in:
		@@ -38,13 +38,19 @@ i32 run_main_loop(void) {
 | 
				
			|||||||
  comp.nodes = (node_t *)malloc(sizeof(node_t) * MAX_NODES);
 | 
					  comp.nodes = (node_t *)malloc(sizeof(node_t) * MAX_NODES);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  window_t *main_window = &(comp.windows[0]);
 | 
					  window_t *main_window = &(comp.windows[0]);
 | 
				
			||||||
 | 
					  window_t *toolbox = &(comp.windows[1]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (!init_window(main_window, "Compositor", WINDOW_WIDTH, WINDOW_HEIGHT)) {
 | 
					  if (!init_window(main_window, "Compositor", WINDOW_WIDTH, WINDOW_HEIGHT, -1,
 | 
				
			||||||
 | 
					                   -1)) {
 | 
				
			||||||
    SDL_Quit();
 | 
					    SDL_Quit();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return EXIT_FAILURE;
 | 
					    return EXIT_FAILURE;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  u32 toolbox_window_width = WINDOW_WIDTH / 7;
 | 
				
			||||||
 | 
					  init_window(toolbox, "Toolbox", toolbox_window_width, WINDOW_HEIGHT,
 | 
				
			||||||
 | 
					              main_window->x - toolbox_window_width, -1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  comp.running = true;
 | 
					  comp.running = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  SDL_EventState(SDL_DROPFILE, SDL_ENABLE);
 | 
					  SDL_EventState(SDL_DROPFILE, SDL_ENABLE);
 | 
				
			||||||
@@ -56,6 +62,14 @@ i32 run_main_loop(void) {
 | 
				
			|||||||
      switch (comp.event.type) {
 | 
					      switch (comp.event.type) {
 | 
				
			||||||
      case SDL_QUIT:
 | 
					      case SDL_QUIT:
 | 
				
			||||||
        comp.running = false;
 | 
					        comp.running = false;
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					      case SDL_WINDOWEVENT:
 | 
				
			||||||
 | 
					        switch (comp.event.window.event) {
 | 
				
			||||||
 | 
					        case SDL_WINDOWEVENT_CLOSE:
 | 
				
			||||||
 | 
					          comp.running = false;
 | 
				
			||||||
 | 
					          break;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
      case SDL_MOUSEBUTTONDOWN:
 | 
					      case SDL_MOUSEBUTTONDOWN:
 | 
				
			||||||
        if (comp.event.button.windowID == main_window->id) {
 | 
					        if (comp.event.button.windowID == main_window->id) {
 | 
				
			||||||
@@ -108,16 +122,23 @@ i32 run_main_loop(void) {
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    clear_window(main_window, bg_colour);
 | 
					    for (u64 i = 0; i < MAX_WINDOWS; ++i) {
 | 
				
			||||||
 | 
					      clear_window(&(comp.windows[i]), bg_colour);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for (u64 i = 0; i < comp.count; ++i) {
 | 
					    for (u64 i = 0; i < comp.count; ++i) {
 | 
				
			||||||
      node_t *node = &(comp.nodes[i]);
 | 
					      node_t *node = &(comp.nodes[i]);
 | 
				
			||||||
      draw_node(main_window, node);
 | 
					      draw_node(main_window, node);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    swap_buffers(main_window);
 | 
					    for (u64 i = 0; i < MAX_WINDOWS; ++i) {
 | 
				
			||||||
 | 
					      swap_buffers(&(comp.windows[i]));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  cleanup_window(toolbox);
 | 
				
			||||||
 | 
					  cleanup_window(main_window);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  SDL_Quit();
 | 
					  SDL_Quit();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  return EXIT_SUCCESS;
 | 
					  return EXIT_SUCCESS;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user