promotional bannermobile promotional banner

Fox Chat

Fox Chat Util

File Details

FoxChat.zip

  • R
  • Sep 26, 2025
  • 60.02 KB
  • 15
  • 1.15.7
  • Classic

File Name

FoxChat.zip

Supported Versions

  • 1.15.7
# FoxChat Update Log

## Version 2.2 - TextArea 개선 및 버그 수정

### 변경 날짜
2025-09-26

### 주요 변경사항

#### 1. TextArea 컴포넌트 구현
- 멀티라인 텍스트 입력을 위한 전용 TextArea 함수 생성
- ScrollFrame과 EditBox를 결합한 재사용 가능한 컴포넌트
- 모든 멀티라인 입력 필드에 일관된 UI 적용

#### 2. 적용된 입력 필드
- **채팅 필터링 탭**
- 필터링 문구 입력창
- 무시할 문구 입력창
- **광고 설정 탭**
- 광고 메시지 입력창
- 선착순 메시지 입력창
- **자동 탭**
- 나의 파티 참가 인사말
- 다른 사람 파티 참가 인사말

#### 3. 기능 개선
- **자동 스크롤**: 텍스트 입력 시 커서 위치에 따라 자동 스크롤
- **마우스 휠 지원**: 스크롤바 외에도 마우스 휠로 스크롤 가능
- **여백 조정**: 텍스트가 경계에서 잘리지 않도록 충분한 여백 제공
- **안정성 향상**: 재귀 호출 방지 및 이벤트 처리 최적화

#### 4. 버그 수정
- **커서 위치 문제**: 텍스트와 커서가 정확히 정렬되도록 수정
- **스크롤 범위 문제**: EditBox 높이를 2000px로 고정하여 안정성 확보
- **경계 잘림 문제**: 하단 여백을 25px로 증가하여 커서가 잘리지 않도록 수정
- **자동 스크롤 개선**: 하단 40px, 상단 5px 여유로 더 나은 사용자 경험 제공

#### 5. 기술적 세부사항

##### CreateTextArea 함수 주요 설정
```lua
-- EditBox 설정
editBox:SetHeight(2000) -- 충분한 고정 높이
editBox:SetTextInsets(5, 5, 5, 25) -- 하단 여백 증가
editBox:SetSpacing(0) -- 줄 간격 0으로 설정

-- 자동 스크롤 트리거
if cursorBottom > (scrollOffset + scrollHeight - 40) then
-- 하단 40px 여유를 두고 스크롤
end
```

##### 이벤트 처리
- OnCursorChanged: 자동 스크롤 처리
- OnMouseWheel: 마우스 휠 스크롤
- OnEscapePressed: ESC 키로 포커스 해제

#### 6. 호환성
- WoW Classic 1.15 (20주년 하드코어)
- 기존 설정과 완전 호환
- 저장된 데이터 구조 변경 없음

### 알려진 이슈
- 없음

### 향후 계획
- 동적 높이 조정 기능 구현 (WoW API 제약 해결 후)
- 텍스트 포맷팅 기능 추가 고려

### 개발자 노트
TextArea 구현 시 WoW의 EditBox와 ScrollFrame API 제약으로 인해 몇 가지 타협이 필요했습니다:
1. UpdateScrollChildRect() API가 존재하지 않아 고정 높이 사용
2. OnTextChanged 핸들러 충돌을 피하기 위해 동적 높이 조정 제거
3. SetSpacing 값을 0으로 설정하여 커서 정렬 문제 해결

---

개발자: 우르사 (20주년 하드코어 클래식 서버, Fox and Wolf 길드)