Skip to content

Commit 86cf919

Browse files
committed
Initial commit
0 parents  commit 86cf919

File tree

12 files changed

+1921
-0
lines changed

12 files changed

+1921
-0
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: Publish to PyPI
2+
3+
on:
4+
release:
5+
types: [published]
6+
workflow_dispatch:
7+
8+
jobs:
9+
build-and-publish:
10+
runs-on: ubuntu-latest
11+
permissions:
12+
id-token: write
13+
14+
environment:
15+
name: pypi
16+
url: https://pypi.org/project/CTkCodeBoxPlus
17+
18+
steps:
19+
- name: Checkout code
20+
uses: actions/checkout@v4
21+
22+
- name: Set up Python
23+
uses: actions/setup-python@v4
24+
with:
25+
python-version: '3.11'
26+
27+
- name: Install build dependencies
28+
run: |
29+
python -m pip install --upgrade pip
30+
python -m pip install build twine
31+
32+
- name: Build package
33+
run: python -m build
34+
35+
- name: Check package
36+
run: twine check dist/*
37+
38+
- name: Publish to PyPI
39+
uses: pypa/gh-action-pypi-publish@release/v1
40+
with:
41+
skip-existing: true

.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
venv/
2+
*.pyc
3+
__pycache__/
4+
CTkCodeBoxPlus/__pycache__/
5+
.pytest_cache/
6+
.idea/
7+
test*.py

CTkCodeBoxPlus/__init__.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
"""
2+
CustomTkinter Code Viewer Widget
3+
Original Author (CTkCodeBox): Akash Bora (Akascape) | https://github.com/Akascape
4+
Author (CTkCodeBoxPlus): xzyqox (KiTant) | https://github.com/KiTant
5+
License: MIT
6+
Homepage: https://github.com/KiTant/CTkCodeBoxPlus
7+
"""
8+
9+
__version__ = '1.0'
10+
11+
from .ctk_code_box import CTkCodeBox
12+
from .text_menu import TextMenu
13+
from .add_line_nums import AddLineNums
14+
from .keybinding import _unregister_keybind, _register_keybind

CTkCodeBoxPlus/add_line_nums.py

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import customtkinter
2+
from tklinenums import TkLineNumbers
3+
4+
5+
class AddLineNums(TkLineNumbers):
6+
"""
7+
Line numbers widget for CTkCodeBox (uses TkLineNumbers)
8+
"""
9+
def __init__(self,
10+
master,
11+
text_color=None,
12+
justify="left",
13+
padx=30,
14+
**kwargs):
15+
16+
self.master = master
17+
self.text_color = self.master.cget("border_color") if text_color is None else text_color
18+
self.fg_color = self.master.cget("fg_color")
19+
padx = padx * (int(self.master.cget("font").cget("size")) / 10)
20+
21+
customtkinter.windows.widgets.appearance_mode.CTkAppearanceModeBaseClass.__init__(self)
22+
23+
super().__init__(self.master, self.master, justify=justify,
24+
colors=(self.master._apply_appearance_mode(self.text_color),
25+
self.master._apply_appearance_mode(self.fg_color)),
26+
relief="flat", height=self.master.winfo_reqheight(), **kwargs)
27+
28+
padding = self.master.cget("border_width") + self.master.cget("corner_radius")
29+
30+
super().grid(row=0, column=0, sticky="nsw", padx=(padding, 0), pady=padding-1)
31+
32+
self.master._textbox.grid_configure(padx=(padx, 0))
33+
self.master._textbox.lift()
34+
self.master._textbox.configure(yscrollcommand=self.set_scrollbar)
35+
self.master._textbox.bind("<<ContentChanged>>", self.redraw, add=True)
36+
self.master.bind("<Key>", lambda e: self.after(10, self.redraw), add=True)
37+
38+
def set_scrollbar(self, x, y):
39+
self.redraw(x, y)
40+
self.master._y_scrollbar.set(x, y)
41+
42+
def _set_appearance_mode(self, mode_string):
43+
self.colors = (self.master._apply_appearance_mode(self.text_color),
44+
self.master._apply_appearance_mode(self.fg_color))
45+
self.set_colors()

0 commit comments

Comments
 (0)