63 lines
1.4 KiB
C
63 lines
1.4 KiB
C
/**
|
|
* @file split_screen.h
|
|
* @brief Split screen management for displaying multiple buffers
|
|
*/
|
|
|
|
#ifndef SPLIT_SCREEN_H_
|
|
#define SPLIT_SCREEN_H_
|
|
|
|
#include "data.h"
|
|
|
|
/**
|
|
* @brief Initializes split screen system
|
|
*/
|
|
void splitScreenInit(void);
|
|
|
|
/**
|
|
* @brief Splits screen vertically (left-right)
|
|
* @param buffer_id_left Buffer ID for left pane
|
|
* @param buffer_id_right Buffer ID for right pane
|
|
* @return 0 on success, -1 on failure
|
|
*/
|
|
int splitScreenVertical(int buffer_id_left, int buffer_id_right);
|
|
|
|
/**
|
|
* @brief Splits screen horizontally (top-bottom)
|
|
* @param buffer_id_top Buffer ID for top pane
|
|
* @param buffer_id_bottom Buffer ID for bottom pane
|
|
* @return 0 on success, -1 on failure
|
|
*/
|
|
int splitScreenHorizontal(int buffer_id_top, int buffer_id_bottom);
|
|
|
|
/**
|
|
* @brief Returns to single buffer fullscreen
|
|
*/
|
|
void splitScreenUnify(void);
|
|
|
|
/**
|
|
* @brief Switches active pane (focus moves between splits)
|
|
* @return 0 on success, -1 on failure
|
|
*/
|
|
int splitScreenSwitchPane(void);
|
|
|
|
/**
|
|
* @brief Updates the active pane's buffer
|
|
* @param buffer_id New buffer ID for active pane
|
|
* @return 0 on success, -1 on failure
|
|
*/
|
|
int splitScreenSetPaneBuffer(int buffer_id);
|
|
|
|
/**
|
|
* @brief Gets current screen layout
|
|
* @return Pointer to current ScreenLayout
|
|
*/
|
|
ScreenLayout *splitScreenGetLayout(void);
|
|
|
|
/**
|
|
* @brief Gets active pane
|
|
* @return Pointer to active EditorPane
|
|
*/
|
|
EditorPane *splitScreenGetActivePane(void);
|
|
|
|
#endif
|